每周我似乎都会收到以下两条 Cron 消息:
/etc/cron.daily/logrotate:
gzip: stdin: file size changed while zipping
/etc/cron.daily/spamassassin:
channel: no 'mirrors.updates.spamassassin.org' record found, channel failed
sa-update failed for unknown reasons
不确定是什么原因造成的。
答案1
正如信息中所说的那样。
在第一种情况下,归档过程中有一些内容写入正在归档的文件中。
在第二种情况下,Spam Assassin 无法访问更新自身所需的镜像。
答案2
添加delaycompress
相关的日志轮换配置文件可能有助于解决第一个错误。
这可以在这里作为默认设置完成/etc/logrotate.conf
,或者更具体地说,在任何特定于包的配置文件中完成/etc/logrotate.d
。
关于delaycompress
(强调添加):
将前一个日志文件的压缩推迟到下一个轮换周期。这只有与 compress 结合使用时才有效. 当某些程序无法被要求关闭其日志文件并因此可能会在一段时间内继续写入前一个日志文件时,可以使用它。
因此,如果您将其添加到全局配置文件中,您compress
也需要添加,但您可能不想这样做。
或者,您需要追踪哪个包有问题 - 这并不容易,但这里有一些提示:
- 查找哪些配置文件有
compress
选项:cd /etc/logrotate.d
然后grep "compress" *
- 其中,找出哪些不也有
delaycompress
- 与上次旋转时间
/var/lib/logrotate/status
和日志文件的大小进行比较,通过一些推断和手势,你可能已经将范围缩小到足够小了 - 然后添加
delaycompress
到相关的配置文件例如/etc/logrotate.d/PACKAGENAME