我有以下 logrotate 配置和 2 GB /var/log/messages
:
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/network {
hourly
rotate 5
size 1M
compress
postrotate
service syslog-ng reload
endscript
}
我手动运行logrotate -d -v /etc/logrotate.conf
,输出显示:
rotating pattern: /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/network 1048576 bytes (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/messages
log needs rotating
然后什么也没做/var/log/messages
,文件仍然有 2GB 大。
那么是配置出了错误吗?
答案1
以下是按重要性排序的一些提示:
-) logrotate 配置文件看起来不错,但是有人调用 logrotate 吗?这通常由 cron 或 anacron 完成。检查一下,因为 logrotate 确实需要有人调用它(通常是 cron/anacron),否则配置它是没用的。检查您的 cron/anacron 配置并检查守护进程是否处于活动状态。
-) 至少在我的版本中,hourly 看起来不是一个有效的配置选项,请查看此处以确保
-) 当您使用“-d”手动运行它时,不会对文件进行任何更改,因此对于该运行来说,没有发生任何事情是正确的。因此,为了确保至少配置 100% 正确,请尝试不使用 -d。最后使用 -f 强制轮换,以便您可以检查最终的权限或此类问题。