您希望通过电子邮件收到执行 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 中的命令并执行您想要的操作:仅在出现错误时发送电子邮件。