文件上的Logrotate和copytruncate大于剩余的空闲空间

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

我们有一个catalina.out (Tomcat)文件,这个文件已经增长到768 megs,并且在mount point上还有171 megs。

显然logrotate应该已经在这台机器上运行,但没有。 catalina.out的标准做法是使用copytruncate来处理catalina.out而不用closuresTomcat来完成。

如果我简单地添加我们的标准Tomcat logrotateconfiguration,它使用copytruncate ,我假设复制发生在truncate之前,因此我将耗尽磁盘空间。

日志可以追溯到去年十二月,因此保留所有日志的内容并不是必须的。

什么是摆脱这种情况最安全的方法? 纯粹从逻辑上讲,我认为在安装logrotateconfiguration之前,我需要摆脱这个文件的起始500兆,但是我甚至不知道这是否可能。

我正在运行RHEL 5.3。

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

顺便说一句,171兆(甚至800M,如果你会完全删除文件)是不够的。 理想情况下,您应该有大约20%的可用空间,以防万一需要马上使用。

另外,我build议部署一些监控解决scheme(至less监控zabbix / nagios / zenoss),并监控磁盘空间以防止出现此类问题。