我想验证我的Cron作业正在执行以及何时执行。我相信我的sudo crontab -e
工作有日志,但是在哪里?
我搜索了谷歌,发现了一些建议以查找/var/log
(其中我看不到名称中带有“ cron”的任何内容)并编辑了/etc/syslog.conf
我也没有的文件。
我想验证我的Cron作业正在执行以及何时执行。我相信我的sudo crontab -e
工作有日志,但是在哪里?
我搜索了谷歌,发现了一些建议以查找/var/log
(其中我看不到名称中带有“ cron”的任何内容)并编辑了/etc/syslog.conf
我也没有的文件。
Answers:
在默认安装中,cron作业将登录到
/var/log/syslog
您可以通过运行以下命令在该日志文件中仅查看cron作业
grep CRON /var/log/syslog
如果您没有重新配置任何内容,则条目将在其中。
/var/log/
目录中的另一个文件中。检查cron.log或等效文件。
grep -i CRON
可以搜索不区分大小写的内容
您可以创建一个cron.log文件,使其仅包含显示在syslog中的CRON条目。请注意,如果遵循以下说明,CRON作业仍将显示在系统日志中。
开启档案
/etc/rsyslog.d/50-default.conf
查找以以下内容开头的行:
#cron.*
取消注释该行,保存文件,然后重新启动rsyslog:
sudo service rsyslog restart
现在,您应该在此处看到cron日志文件:
/var/log/cron.log
现在,Cron活动将被记录到该文件中(除了syslog)。
请注意,在cron.log中,您将在/etc/cron.hourly、cron.daily等中看到cron运行脚本的时间条目-例如:
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(或其他一些日志文件)。
如果要验证crontab是否正在运行并且不必在cron.log或syslog中进行搜索,请创建一个crontab来将输出重定向到您选择的日志文件-类似于:
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
这会将运行脚本的所有标准输出和错误重定向到指定的日志文件。
*.*;auth,authpriv.none -/var/log/syslog
为*.*;auth,authpriv.none,cron.none -/var/log/syslog
。
2>&1
?
在这种情况下,有时进行连续监视可能会很有用:
tail -f /var/log/syslog | grep CRON
-F
,它将在文件名更改后跟随文件,因此,当文件被截断/移动到(例如)时/var/log/syslog.1.gz
,您仍在跟踪当前/var/log/syslog
文件。根据男性文档,这与跑步相同tail xxxx -f --retry
/var/log/syslog
默认情况下处于启用状态。
但是可以将其设置为创建单独的cron.log,这更有用。
此问答描述了该过程:
16.04:如何让cron创建cron.log并对其进行实时监控?
同样在此答案中,还包含创建wcron
命令的说明,该命令显示该命令几乎是实时的。另外,它链接到另一个答案,
该页面显示了如何更改日志级别,使其不仅包括作业的开始-级别15还将显示错误和结束时间。
journalctl -t CROND
从journalctl
手册中:
-t, --identifier=SYSLOG_IDENTIFIER|PATTERN
Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.
This parameter can be specified multiple times.
如前所述,cron作业已登录到 /var/log/syslog
您可以将syslog管道传输到grep并过滤掉CRON日志,如下所示
less /var/log/syslog | grep CRON
您可以像这样搜索crontab日志
less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>
您可以像这样搜索存储在gz文件中的crontab历史记录日志
less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>