问题现象
可以使用命令行查看,出现如下情况:
df -h 占用空间90%,占用 17G 空间。
du -sh ./* 查看根目录下的空间占用,加起来不到10G,差别比较大。
问题原因
如果删除的文件正在被调用,则直接删除文件可能会导致句柄未释放,磁盘空间还被占用的情况。
处理办法
可以执行命令 lsof|grep deleted 获得一个已经被删除但是仍然被应用程序占用的文件列表,比如:
$ lsof|grep deleted java 6006 root 1w REG 202,1 10590411943 1180807 /usr/tomcat/logs/catalina.out (deleted) java 6006 root 2w REG 202,1 10590411943 1180807 /usr/tomcat/logs/catalina.out (deleted) java 6006 root 9w REG 202,1 0 1180815 /usr/tomcat/logs/manager.xxxxxx.log (delete) java 6006 root 10w REG 202,1 0 1180816 /usr/tomcat/logs/host-manager.xxxxxx.log (deleted)
然后,尝试参阅如下方法进行处理:
重启系统来释放资源。
停止占用文件资源的应用程序或服务,比如 Apache 等。
kill 正在占用文件的对应的进程,这种方法是有一定风险(不推荐)。