我在超级用户社区中发布了这个问题,但也许这个论坛更适合我的问题:
我正在将日志发送到系统日志服务器,但是那里的 cron 日志占用的空间超出了应有的空间(而且我不需要查看它们)。每个小时,我都会收到类似的消息
starting 0anacron
finished 0anacron
其他消息就像
(CRON) ERROR chdir failed
我尝试进入 rsyslog 配置文件,发现大多数日志都位于 /var/log/rsyslog 中。我在网上找到的资料建议我执行以下操作,因此我在 rsyslog 配置中添加了这些行:
cron.none.* -/var/log/rsyslog
cron.* -/var/log/rsyslog
cron.* -/var/log/cron.log
并重新启动 rsyslog 但我仍然在我的 syslog 服务器上收到 cron 日志。我尝试*.*;
在每行的“cron”部分之前添加,但这也不起作用。这也在我的 rsyslog 配置文件中:
*.cron.none /var/log/messages
但没有任何效果。有谁知道如何停止 cron 日志,这样我就不会在我的 syslog 服务器上获取它们?
答案1
rsyslog 配置中的行顺序很重要。
cron.none.* -/var/log/rsyslog
cron.* -/var/log/rsyslog
cron.* -/var/log/cron.log
第一行表示将来自 cron 的消息(无论优先级如何)放入 /var/log/rsyslog 中而不同步。就是这样。消息已处理,第二行和第三行不再播放。
您需要删除(注释掉)前两行,只保留第三行以便cron
将消息发送到/var/log/cron.log
如果你想cron
完全被忽略,你可以使用一个神奇的词“停止”:
cron.* stop
欲了解更多信息,请访问man 5 rsyslog.conf
和man 3 syslog