通过电子邮件接收 cron 作业错误通知

通过电子邮件接收 cron 作业错误通知

您希望通过电子邮件收到执行 cron 作业时发生的错误的通知。

我使用 CentOS 和文件 /etc/crontab 进行配置。

我所做的第一步是:

MAILTO=my_email_address

然后我将其附加到每个 crontab 条目:

2>/dev/null

这意味着

24 4 * * * root /usr/sbin/ntpdate pool.ntp.org

变成:

24 4 * * * root /usr/sbin/ntpdate pool.ntp.org 2>/dev/null

这样,我应该抑制正常输出并发送错误消息。

我想知道您是否认为我所做的是正确的以及是否存在任何缺陷。

谢谢,丹

答案1

实际上,我认为您所做的与您想要的完全相反;您抑制了错误消息(通过将 STDERR 发送到 /dev/null)并且只会得到正常的输出。

尝试

24 4 * * * root /usr/sbin/ntpdate pool.ntp.org > /dev/null

更好的是,运行 ntpd;这是保持时钟同步的更好方法,比每天强行重置一次要好得多。

答案2

IIRC cron 发送电子邮件输出命令,因此如果你抑制错误(通过将它们抛出到/dev/null)您将仅收到命令输出,而不会收到错误。我发现了一个不错的脚本:慢性的它包装 crontab 中的命令并执行您想要的操作:仅在出现错误时发送电子邮件。

相关内容