cron / crontab日志在哪里?

我想validation我的cron作业是在执行还是在什么时候执行。 我相信我的sudo crontab -e工作有一个日志,但在哪里?

我搜索谷歌并找到建议查看/var/log (其中我没有看到名称中带有’cron’的任何内容)并编辑我也没有的文件/etc/syslog.conf

在默认安装中,将记录cron作业

 /var/log/syslog 

您可以通过运行在该日志文件中查看cron作业

  grep CRON /var/log/syslog 

如果您尚未重新配置任何内容,则条目将在那里。

您可以创建一个cron.log文件,以仅包含syslog中显示的CRON条目。 请注意,如果您按照以下说明操作,CRON作业仍将显示在syslog中。

打开文件

 /etc/rsyslog.d/50-default.conf 

找到以下开头的行:

 #cron.* 

取消注释该行,保存文件,然后重新启动rsyslog:

 sudo service rsyslog restart 

您现在应该在这里看到一个cron日志文件:

 /var/log/cron.log 

Cron活动现在将记录到此文件中(除了syslog)。

请注意,在cron.log中,您将看到cron在/etc/cron.hourly,cron.daily等中运行脚本的条目 – 例如:

 Apr 12 14:17:01 cd CRON[14368]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) 

但是,您不会看到有关在/etc/cron.daily或/etc/cron.hourly中实际运行的脚本的更多信息,除非这些脚本将输出定向到cron.log(或者可能是某些其他日志文件)。

如果要validationcrontab是否正在运行而不必在cron.log或syslog中搜索它,请创建一个crontab,将输出重定向到您选择的日志文件 – 类似于:

 01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1 

这将重定向可能由运行到指定日志文件的脚本生成的所有标准输出和错误。

在这种情况下,有时连续监视它会很有用:

 tail -f /var/log/syslog | grep CRON 

您还可以将各个cronjobs的输出定向到他们自己的日志以获得更好的可读性,您只需要在某处附加日期输出。

  0 15 * * * /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1 

这是一个非常古老的问题,但这些答案似乎都不令人满意。

首先让你的cron作业每分钟运行一次,然后使用测试日志记录运行cron作为非守护进程(暂时,只是杀死任何可能已经启动的crond):

crond -nx test

并查看流经终端的程序执行日志。

它默认位于/var/log/syslog

但它可以设置为创建一个单独的cron.log,这更有用。

此问答描述了该过程:

16.04:如何让cron创建cron.log并实时监控?

此答案中还有创建wcron命令的说明,该命令几乎是实时显示的。 另外,它链接到另一个答案,

如何更改cron日志级别?

这显示了如何更改日志级别以包括不仅仅包括作业的开始 – 级别15也将显示错误和结束时间。

您可以将cron的输出重定向到tmp文件

如:00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2>&1

错误和正常输出,都将重定向到同一文件