如何防止(某些 cronjobs)在 Ubuntu 15.04 中填满我的系统日志?我有一些作业每分钟运行 4 次,很快就会填满我的系统日志文件。
我尝试添加:
cron.* /var/log/cron
到 /etc/rsyslog.conf,但这并没有解决任何问题。
当前输出为:
Aug 8 06:58:01 elitegameservers CRON[25706]: (gijs) CMD ( sleep 15; unison -batch /var/www ssh://server1//var/www)
Aug 8 06:58:01 elitegameservers CRON[25703]: (gijs) CMD ( sleep 30; unison -batch /var/www ssh://server2//var/www)
Aug 8 06:58:01 elitegameservers CRON[25708]: (gijs) CMD (unison -batch /var/www ssh://server2//var/www)
Aug 8 06:58:01 elitegameservers CRON[25713]: (gijs) CMD ( sleep 30; unison -batch /var/www ssh://server1//var/www)
Aug 8 06:58:01 elitegameservers CRON[25714]: (gijs) CMD ( sleep 45; unison -batch /var/www ssh://server1//var/www)
Aug 8 06:58:01 elitegameservers CRON[25717]: (gijs) CMD ( unison -batch /var/www ssh:// server3//var/www)
Aug 8 06:58:01 elitegameservers CRON[25719]: (gijs) CMD ( sleep 15; unison -batch /var/www ssh:// server3//var/www)
Aug 8 06:58:01 elitegameservers CRON[25690]: (CRON) info (No MTA installed, discarding output)
Aug 8 06:58:01 elitegameservers CRON[25694]: (CRON) info (No MTA installed, discarding output)
Aug 8 06:58:08 elitegameservers CRON[25588]: (CRON) info (No MTA installed, discarding output)
答案1
尝试将 cron.none 添加到记录到 syslog 的行中
*.*;auth,authpriv.none,cron.none -/var/log/syslog
编辑:更多细节:来自 ubuntu 系统日志手册 http://manpages.ubuntu.com/manpages/hardy/man5/syslog.conf.5.html
特殊级别“无”禁用特定设施。
*.*
开头的 表示将所有内容发送到指定文件。然后您可以在 之后限定它以;
停止将特定消息发送到那里。在这里,我们说我们不希望看到身份验证消息,现在我们也不想要 cron 消息。没有什么可以阻止您将 cron 消息放在其他地方,并且默认文件有几行注释掉以以这种方式拆分日志。您所要做的就是取消注释它们。
您还可以通过更改级别(例如从记录所有消息的 cron.* 更改为仅记录警告消息的 cron.warn)来限制针对特定设施获取的消息。
感谢@peterh 的提醒,我是 Linux 社区的新手。
答案2
我猜你重启了rsyslog
。因此,你应该会看到你的消息两次— 一次进去/var/log/syslog
,一次进去/var/log/cron
。
因此,您所忽略的是,登录后/var/log/cron
,处理应该停止。
cron.* /var/log/cron
& stop
您还可以配置过滤器以仅在其他地方记录某些消息,或者根本不记录 - 请查看rsyslog 过滤器手册为了那个原因。