如何检测cron作业中的错误
cron作业可能失败的原因实在是非常大。 最常见的原因可能是,
- 语法错误
- 在没有正确路径的情
- 使用未在cron环境中定义的shell变量
- 尝试在未指定
DISPLAY
情况下打开GUI等等…
有时很难理解哪个错误阻止了作业的执行。 有没有办法检测cron作业中的错误?
设置本地邮件并获取cron作业输出邮件
当cron作业成功启动或由于某种原因而无法执行时,cron守护程序会自动向设置cron作业的用户发送电子邮件。 该邮件包含成功作业的描述或详细报告特定cron作业失败的原因。
如果未设置本地邮件系统,则不会收到这些邮件。 cron作业输出电子邮件将在本地邮件假脱机文件夹中死亡。 因此,您需要设置邮件程序守护程序以阅读这些邮件。 请参阅此答案如何阅读thunderbird中的本地电子邮件以获取所有本地邮件。
如果您的cronjob失败,您将收到一封说明失败原因的邮件。 这是在设置cron作业时检测错误的最佳方法之一。
替代方式
根据这个答案,可以使用重定向在日志文件中获取cronjob的错误。 但是您需要使用cron作业设置重定向并自己指定日志文件。
并且/var/log/syslog
文件始终在那里检查您的cron作业是否按预期运行。
这里有一个广泛的答案,解释了如何使16.04 LTS系统创建一个单独的cron.log文件,以及如何制作一个实时wcron
它的命令wcron
。
16.04:如何让cron创建cron.log并实时监控?
它还包含有关更改日志级别的信息,因此您不仅可以查看脚本启动(默认),还可以查看结束时间和错误。
它清楚地显示它们产生的任何错误。