解决:删除了文件空间没有释放

时间:2022-02-25 16:15:41

比较奇怪,今天用rm命令在服务器上删除了一个大文件,df查看硬盘空间没有释放,查找资料后,总结:

rm删除文件会从文件的目录结构上解除链接,如果文件正在被程序读写,,比如httpd服务,这时httpd服务仍然可以读写该文件,导致空间没有释放。

我们需要先查找到该文件:

[root@miyan ~]# ls -lhtr

查找正在使用该文件的进程:

[root@miyan ~]# lsof | grep trace-file

根据进程号查找进程相关的信息

[root@miyan ~]# ps -ef | grep 2567

然后清空正在读写的文件:

当文件中正在读写时,直接删除文件会导致硬盘空间未被释放,用户无法重新访问该文件,只有通过服务重启才恢复。可以在保留文件inode的情况下,清空大文件。

[root@miyan ~]# ls -l trace-file 
-rw-r--r-- 1 root root 111840 Jan 13 09:27 trace-file
[root@miyan ~]# echo >trace-file 
[root@miyan ~]# ls -l trace-file 
-rw-r--r-- 1 root root 1 Apr  9 13:29 trace-file