系统:CentOS7
现象:服务器里 删除文件后发现并没有释放空间
如下:使用df -Th命令查看磁盘空间 发现空间已经满了 可是之前明明已经删除了一个大文件 但是空间没有被释放
原因:
在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(或者有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用,而我删除的log文件,可能删除的时候文件正在被使用,所以才会出现这样的情况。
解决方法:
通过以下命令获得一个已经被删除但是仍然被进程占用的文件列表,然后杀死对应的进程即可。
lsof |grep deleted
过程中服务器报了一个错 说是没有找到lsof命令 那么安装一下就可以了
安装完lsof命令后 再去执行上面命令 lsof |grep deleted 发现被占用的进程文件
然后杀死对应的进程 再次查看
再次查看磁盘的剩余空间 可以发现 空间已经被释放