删除日志文件后,Ubuntu 服务器仍然提示没有空间

删除日志文件后,Ubuntu 服务器仍然提示没有空间

我的 Ubuntu 服务器因磁盘空间不足而停止运行。我删除了一些日志文件,这些文件很快就变得很大。但df -h仍然显示没有剩余空间。运行时,du -sh /*我可以看到删除日志后应该有足够的磁盘空间。

我运行后lsof +L1 ,它产生了两个文件:/var/log/mail.log/var/log/mail.err。这是我删除的两个日志。我重新启动了 apache、postfix 和 mysql(mysql 认为由于磁盘空间不足,所以无法重新启动),但仍然df -h显示没有空间。

答案1

在这种情况下,文件可能由 syslog 管理。您可能有 rsyslog、sysklogd 或 syslog-ng。根据我的记忆,我认为 rsyslog 是默认的,因此请尝试:

sudo 服务 rsyslog 重启

这应该会释放文件,并允许它们真正被清理。在最后一个文件句柄关闭之前,文件系统无法释放空间。

(或者您可以像 Windows 管理员一样执行操作,然后重新启动...)

答案2

您需要重新启动创建这些日志的服务,因为它们锁定了这些日志。例如,如果是 apache,只需重新启动 apache,使用率就会下降。

答案3

下次发生这种情况时,您应该检查fuser该文件是否正在被某个进程使用。如果是,请停止该进程,然后删除,或使用cp /dev/null TARGETFILE将文件大小减小到零(这不会更改文件句柄,您不必重新启动任何操作)。

相关内容