比较奇怪,今天用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