如果作业只是偶尔失败,则禁止发送来自 cron 的错误邮件

如果作业只是偶尔失败,则禁止发送来自 cron 的错误邮件

我们有许多 cron 作业偶尔会失败,例如由于网络故障。它们很少会持续失败(例如由于错误或配置错误)。

在后一种情况下,我希望只接收错误邮件,而在作业偶尔失败时抑制 cron 邮件,以对抗“寻呼机疲劳”,也就是说不再关心邮件,因为大多数邮件都不需要采取行动。

是否有任何工具(例如 cron 作业的包装器)可以做到这一点?其他组织如何使用 cron 作业处理大量 Linux 服务器?

答案1

您正在运行的作业cron应该处理预期的错误。作业周期性失败的情况并不常见cron。修复程序,使它们不会失败。这可能意味着您需要将它们包装在重试逻辑中,等待一小段时间,然后重试一次或两次。但是,我不太喜欢重试解决方案。

如果您的作业经常因“网络故障”而失败,请解决网络问题。如果是其他原因,请解决该问题。

如果您只想在 cron 作业不再工作时发出警报(需要定义),请不要在 cron 作业失败时发出警报。构建一个可以检测到问题的监控流程。这可能很困难。如果您正在监控更新过程,可能会有一段时间没有更新,这会触发监视器上的误报,以确保更新正在进行。

确保你已经安排了 cron 作业,这样就不会同时运行冲突的作业。时间线图表可能会有所帮助。

您可能能够拼凑一个监视器来统计关键作业的失败和成功次数,并在发生过多连续失败时发出警报。这将需要在作业中增加一个额外步骤来报告其状态。

相关内容