天天看点

linux删除文件后却没有释放空间

系统:CentOS7

现象:服务器里 删除文件后发现并没有释放空间

如下:使用df -Th命令查看磁盘空间 发现空间已经满了 可是之前明明已经删除了一个大文件 但是空间没有被释放

linux删除文件后却没有释放空间

原因:

在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(或者有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用,而我删除的log文件,可能删除的时候文件正在被使用,所以才会出现这样的情况。

解决方法:

通过以下命令获得一个已经被删除但是仍然被进程占用的文件列表,然后杀死对应的进程即可。

lsof |grep deleted
           

过程中服务器报了一个错 说是没有找到lsof命令 那么安装一下就可以了

linux删除文件后却没有释放空间

安装完lsof命令后 再去执行上面命令 lsof |grep deleted 发现被占用的进程文件

linux删除文件后却没有释放空间

然后杀死对应的进程 再次查看

linux删除文件后却没有释放空间

再次查看磁盘的剩余空间 可以发现 空间已经被释放

linux删除文件后却没有释放空间