cron:在发生故障时发送电子邮件到不同的地址

我有这样的cronjob:

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

有没有办法告诉cron根据退出代码发送邮件到不同的邮件地址? 我的意思是,可以cron发送电子邮件[email protected]的情况下script.sh返回0或发送到[email protected]万一出了问题? 或者我必须在包装脚本中做到这一点?

你将不得不在包装脚本中做到这一点。

不,cron发送所有输出到指定的用户。

通常,所有的cron作业都应该将STDOUTredirect到/ dev / null,因为您不希望使用服务器上运行的所有cron作业来垃圾邮件。

如果你这样做(redirect),只有在失败的情况下,你才会收到邮件。

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

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

您也可以ping一个/完整的端点来表示成功,您可以制定一个规则,如“如果我在24小时内没有成功/完成ping,则通知我”。