对大于剩余可用空间的文件进行 Logrotate 和 copytruncate

对大于剩余可用空间的文件进行 Logrotate 和 copytruncate

/var/log我收到了有关生产系统上挂载点的磁盘空间的 Nagios 警报。

我们有一个catalina.out(Tomcat) 文件,它已增长到 768 MB,并且挂载点上还剩下 171 MB。

显然,logrotate 应该在这台机器上运行,但实际上并没有。 的标准做法catalina.out是使用,这样就无需关闭 Tomcatcopytruncate即可进行处理。catalina.out

如果我仅添加使用的标准 Tomcat logrotate 配置,copytruncate我假设复制发生在截断之前,因此我将耗尽磁盘空间。

该日志可以追溯到去年 12 月,因此没有必要保留日志的所有内容。

摆脱这种情况的最安全方法是什么?从纯粹的逻辑上讲,我认为在安装 logrotate 配置之前,我需要删除该文件的前 500 MB,但我甚至不知道这是否可能。

我正在运行 RHEL 5.3。

答案1

最安全的方法是将 copytruncate 复制到另一个挂载点。

顺便说一句,171 MB(如果你完全删除文件,甚至 800 MB)是不够的。理想情况下,你应该有大约 20% 的可用空间,以防某些东西立即需要它。

此外,我建议部署一些监控解决方案(zabbix/nagios/zenoss,至少是 monit)并监控磁盘空间以防止此类问题。

相关内容