如何阻止 cron 日志发送到 syslog?

如何阻止 cron 日志发送到 syslog?

我在超级用户社区中发布了这个问题,但也许这个论坛更适合我的问题:

我正在将日志发送到系统日志服务器,但是那里的 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.confman 3 syslog

相关内容