Linux 服务器删除大日志文件磁盘空间仍旧未释放问题排查
查看磁盘利用情况
收到磁盘预警邮件后,查看邮件内容,提示云服务器磁盘利用率已经 大于 90%,估计是Tomcat生产的日志好久没有清理造成的,登录远程Linux服务器后,df -h
先查看了磁盘利用率。

删除大的日志文件大约70G之后,再次查看磁盘空间,利用率没变化。神奇了
未释放磁盘空间原因
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用,而我删除的是Tomcat的日志log文件,删除的时候文件应该正在被使用,所以会如此。
解决方法
- 查询已经被删除但是仍然被应用程序占用的文件列表。
使用
lsof | grep deleted
查看,那可真是多了。
- 释放进程
Kill掉相应的Tomcat进程,让OS自动回收磁盘,但是这样做风险很大,不敢下手,所以不能kill进程
所以保险起见,还是停用Tomcat,重启Tomcat服务,介于白天系统不能停止服务,所以晚上尝试。
重启后,
df -h
再次查看磁盘占用率情况,已释放!