日志文件已填满磁盘。删除日志文件后磁盘仍然已满

日志文件已填满磁盘。删除日志文件后磁盘仍然已满

不知何故,我正在开发的 Python 服务器将 50gb 的数据记录到 /tmp/blabla.log,填满了 rootfs 分区,我注意到基本命令失败了,如下所示:root@server:/# crontab -e /tmp/crontab.FfvjqH: 设备上没有剩余空间

因此,我执行了 rm -rf /tmp/blabla.log 并且文件消失了,无法用 ls 或 tail 看到......但是空间不足的错误仍然存​​在。df -h 仍然报告 rootfs 已被 100% 使用,并且没有反映我删除了 50gb 文件。

我可以通过将一些文件移动到另一个分区来释放更多空间,并且系统正常,但我没有恢复 50gb 的可用空间。

可能是什么问题呢?


我自己的答案:从 rootfs 分区移动大约 3gb 的文件后,我敢于重新启动服务器,但可能会因磁盘空间问题导致服务器无法重新启动,但幸运的是,它成功重新启动,并且重新启动后 df -h 报告了正确的可用空间量。因此,系统重新启动似乎是答案。

答案1

您已删除该文件,但文件描述符仍处于打开状态并由正在运行的脚本使用。停止脚本,您应该会恢复空间。最好使用或截断 > /tmp/blabla.log文件cp /dev/null /tmp/blabla.log

答案2

您可能需要使用 lsof 检查文件是否仍由进程/服务保留。例如,对于 tomcat,如果您在服务运行时删除 catalina.out,它将“删除”该文件,但该文件仍将被 tomcat 服务锁定,直到您重新启动。您可以使用 找到它,lsof | grep <filename>如果有的话,它会在命中后显示(已删除)。

相关内容