如何更改 cron 日志级别?

如何更改 cron 日志级别?

exec cronexec cron -L 15run替换了它sudo service cron reloadsudo service cron restart但没有任何变化。Cron 不会记录作业的结束,也不会记录失败的作业。我在 Ubuntu 14.04 中没有遇到任何问题,但现在我在 Ubuntu 16.04 中遇到了这个问题。我做错了什么?

一步一步:首先我更改了 /etc/init/cron.conf:

sudo sed -i 's|exec cron$|exec cron -L15|' /etc/init/cron.conf && sudo restart cron && cat /etc/init/cron.conf

所以现在是

$ cat /etc/init/cron.conf
# cron - regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times

description "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec cron -L 15

我在我的 Ubuntu 16.04 以及另一台电脑上的 Ubuntu 14.04 上进行了相同的配置。

Ubuntu 14.04中的Cron日志如下:

$  grep CRON /var/log/syslog
Aug 26 16:05:01 y1404 CRON[6825]: (y) CMD (foo # JOB_ID_1)
Aug 26 16:05:01 y1404 CRON[6824]: (CRON) error (grandchild #6825 failed with exit status 127)

因此,您可以看到第二行有关不存在命令的错误通知foo。 但在 Ubuntu 16.04 中,日志中没有错误通知:

Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)

答案1

从 Ubuntu 15.04 开始,暴发户使用/etc/init/*.conf被替换systemd/lib/systemd/system/使用和中的配置文件/etc/systemd/system/。虽然 Ubuntu 16.04 中仍然存在文件/etc/init/cron.conf,但现在通常用于启动的脚本cron/lib/systemd/system/cron.service。如果你想添加额外的选项,请使用以下命令编辑此文件

sudo systemctl edit --full cron

并替换行

ExecStart=/usr/sbin/cron -f $EXTRA_OPTS

例如

ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS

要重新加载配置,请运行sudo systemctl restart cron或重新启动。您可以使用 测试服务启动的具体命令systemctl status,例如cron(参见最后一行):

> systemctl status cron
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since So 2017-08-27 09:56:18 CEST; 1h 15min ago
     Docs: man:cron(8)
 Main PID: 26021 (cron)
   CGroup: /system.slice/cron.service
           └─26021 /usr/sbin/cron -f

相关内容