Linux rm -rf删除文件不释放空间的解决办法

时间:2021-05-13 16:14:57

前几天发现在Linux系统下有一个很大的无用文件,于是用rm -rf 删除,然后用df -h查看磁盘空间,发现即使文件被删除了,但文件所占用的空间并未释放,十分疑惑,于是在网上找到了解决方案,即使用lsof | grep deleted查看占用的进程并kill相关进程。

具体情况是这样,使用rm -rf 删除文件之后用df -h查看磁盘空间,发现空间未释放,/opt/test的空间使用率达到68%,而删除的文件大小约为600G,因此从下面结果可以看出,空间并未释放。

[root@BigData100 test]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              50G   41G  6.1G  87% /
tmpfs                 7.8G   24K  7.8G   1% /dev/shm
10.10.21.51:/opt/home
                     1022G  329G  694G  33% /opt/home
/dev/vdb1            1008G  648G  309G  68% /opt/test

使用lsof | grep deleted查看,发现被删除文件仍在占用着,

[root@BigData100 test]# lsof | grep deleted

gdb       41895      root    7r      REG             252,17 692088438784    7869363 /opt/test/core-mxosrvr-11-501-501-13128-1512710602 (deleted)

于是使用kill -9 41895终止以上进程,再用df -h检查空间情况,发现空间已经完全被释放,如下结果。

[root@BigData100 test]# kill -9 41895



[root@BigData100 test]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1 50G 41G 6.1G 87% /
tmpfs                 7.8G   24K  7.8G   1% /dev/shm
10.10.21.51:/opt/home
                     1022G  329G  694G  33% /opt/home
/dev/vdb1            1008G  3.3G  954G   1% /opt/test