最近一台 ubuntu 服务器经常出现磁盘不足的情况,删除部分空间后,过一段时间空间又会不足。粗略估计每小时降低 4G。
诡异的是,使用du
查看磁盘的占用,却无法检查出具体是哪个磁盘占用过大,比如下面的命令会被卡死在某个地方:
sudo du -d1 -h /
如果手工查看根目录下每个子目录的占用空间,其累计与磁盘总空间相差了 1T !整个事情非常之诡异。
在 chatgpt 的提示下,使用下面命令,可以检查被删除但实际还被占用的磁盘空间。它检查到一个任务,在不断写入一个被删除的文件,这个文件因为 bug ,程序异常没有正常退出,并在不断输出 LOG。而因为这个程序是 cron 启动的,其运行结果将被发送到 mail 程序,所以 LOG 输出会保存在某个特定的文件。
sudo lsof +L1
直接杀死该程序即可解决问题。
Q. E. D.