如何更改cron日志级别?
我用exec cron -L 15
替换exec cron
运行sudo service cron reload
, sudo 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以及另一台PC上的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)
从Ubuntu 15.04开始,使用/lib/systemd/system/
和/etc/systemd/system/
配置文件将systemd替换为/etc/init/*.conf
upstart 。 虽然在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