MrD*_*Duk 3 linux disk-usage lsof
我们一直在努力清理/opt坐骑中的一些空间。空间消耗的一大罪魁祸首是我们运行的某些进程的日志文件(每个进程 2 到 12 GB)。
我们通过截断它们来清理它们。然而,这似乎使我们的输出从df -H.
/dev/mapper/Sys-opt 76G 72G 0 100% /opt
Run Code Online (Sandbox Code Playgroud)
du -sh *在此目录上运行时,大小不会相加。运行时lsof | grep log,我看到我们删除的许多文件仍然显示(deleted)在末尾。
我的问题是,(a) 我应该关心这个吗?(b) 有没有办法让我df -H恢复正常,而无需重新启动盒子/这些过程?重新启动进程是否会修复它(我看到相同日志的多个条目,这些条目来自我知道最近已重新启动的进程)?
Unix 使用引用计数来确定文件是否正在使用或数据是否可以删除/重用。
一个打开的文件句柄算作一个引用——所以在它关闭之前,这个空间将被占用。使用打开的文件句柄重新启动进程将关闭文件句柄,如果它已从目录结构中删除,那么当它的引用计数下降到零时它就会消失。
所以是的 - 重新启动您的进程将使该文件消失。
这可能会发生在守护进程过于冗长的日志记录中——它仍在写入它的日志文件,尽管一些善意的人已经清除了。