cron:如果发生故障,则向不同的地址发送电子邮件

cron:如果发生故障,则向不同的地址发送电子邮件

我有一个这样的 cronjob:

[email protected]
30 00 * * * root /run/this/script.sh

有没有办法告诉 cron 根据退出代码将邮件发送到不同的邮件地址?我的意思是,cron 可以发送电子邮件到[电子邮件保护]如果 script.sh 返回 0 或发送到[电子邮件保护]以防万一出现问题?还是我必须在包装器脚本中执行此操作?

答案1

您必须在包装脚本中执行此操作。

答案2

不,cron 将所有输出发送给指定用户。

通常,所有 cron 作业都应将 STDOUT 重定向到 /dev/null,因为您不想向用户发送服务器上运行的所有 cron 作业的垃圾邮件。

如果您这样做(重定向),则只有在发生故障时您才会收到电子邮件。

答案3

查看https://cronitor.io。如果您的工作失败,它可以向您发送警报。您可以像这样编写 cron 命令:

0 * * * * /path/to/my_cron_job.sh || curl https://cronitor.link/d3x0/fail

您还可以 ping /complete 端点来指示成功,并且可以制定一条规则,例如“如果我在 24 小时内没有成功/完成 ping,请提醒我”。

答案4

是的,你可以这样做。只需添加> /dev/null在您的 CRON 脚本之后。

MAILTO="[email protected]" 30 00 * * * root /run/this/script.sh > /dev/null

相关内容