如删除的文件正在被调用,这时直接删除文件可能会导致句柄没有释放,磁盘空间依然被占用的情况。
可使用命令行进行查看:
df -h 占用空间90%,占用17G空间
du -sh ./* 查看根目录下的空间占用,加起来不到10G,差别较大
这时候可以执行命令 lsof|grep deleted
获得一个已经被删除但仍然被应用程序占用的文件列表
root@itest:/# 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)
解决办法:
1、重启系统来释放资源;
2、停止占用文件资源的应用程序或者服务,如Apache等;
3、kill掉正在占用文件的对应进程,此方法有一定风险,所以不推荐。