# Or, to log standard messages, plus jobs with exit status != 0:
# EXTRA_OPTS='-L 5'
#
# For quick reference, the currently available log levels are:
# 0 no logging (errors are logged regardless)
# 1 log start of jobs
# 2 log end of jobs
# 4 log jobs with exit status != 0
# 8 log the process identifier of child process (in all logs)
#
EXTRA_OPTS="-L 0"
您可以将 cron 的输出发送到单独的日志工具,将以下内容添加到您的
/etc/syslog.conf
文件中:请记住添加
/var/log/cron
到您的/etc/logrotate.d/syslog
以确保它得到旋转,例如更改 /etc/default/cron
默认情况下,EXTRA_OPTS 行是“”
好的,
我的问题的解决方案是:
改变
至
内
/etc/syslog.conf
然后重新启动系统日志我还
/var/log/cron.log
按照 Dave Cheney 的建议发送了 cron 并在其上粘贴了 logrotate。我对 Daves 建议的修复最适合我的情况,因为:/var/log/syslog
不会被 cron 消息弄得乱七八糟/var/log/cron.log
不会变得太大。在 Ubuntu 14.04.5(可能在其他地方)有 rsyslogd 而不是 syslogd。TranslucentCloud 用 Debian Jessie 暗示了这一点,但相同的解决方案(但更改 rsyslog.conf 而不是 syslogd.conf)似乎在 Ubuntu 中不起作用。
似乎 /etc/rsyslog.d/50-default.conf 中设置的值实际上将优先于 /etc/rsyslog.conf 中设置的内容,因此最好在此处进行更改,然后重新启动 rsyslog 和 cron。否则,您最终仍会使用 cron 日志记录到 syslog 的默认行为,以及cron 日志记录到 cronlog(但不限于此)。
我的 /etc/rsyslog.d/50-default.conf 中的前几行:
瞧!
实际上,“最佳”(可以声称)解决方案是@DaveCheney建议和 user7321最终所做的结合,再加上我建议的第三个操作:
在您
/etc/syslog.conf
的 中,这些建议的组合会发生如下变化:进入:
并且不要忘记强制重新加载(或重新启动)cron 和 syslogd 服务,例如使用:
注意:这也适用于 rsyslogd。
我只是以不同的方式解决了这个问题,但我的目标略有不同。我想丢弃 atrun 触发时生成的 cron 日志条目,这样我的硬盘驱动器就可以休眠而不是每 5 分钟被唤醒一次。
您可以将 syslog.conf 中的日志事件的目标设置为 shell 命令,方法是在它前面加上管道,因此我使用 grep 来丢弃我不想要的那些。所以:
我还没有调查过,但我相信如果仍然需要这些日志条目,应该可以将它们发送到另一个目标。