如何检测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并实时监控?

它还包含有关更改日志级别的信息,因此您不仅可以查看脚本启动(默认),还可以查看结束时间和错误。

它清楚地显示它们产生的任何错误。