我可以过滤 cron 向我发送电子邮件的频率吗?

我可以过滤 cron 向我发送电子邮件的频率吗?

我有几个 cron 作业,其中一个每分钟运行一次。我不得不关闭一个网站两个小时,这导致了一个特定的 cron 作业出现错误,在这两个小时内我收到了近 120 封电子邮件,直到我完成网站升级。

现在假设我正在睡觉并且发生了一些事情。我不想要数百到数千封电子邮件,因为一个 cron 作业每分钟运行一次并失败。我可以做些什么来限制它向我发送电子邮件的频率,同时允许它每分钟运行一次?

PS:我们没有 smtp 服务器,我们使用第三方,所以我很高兴没有任何内容被标记为垃圾邮件和禁用。

答案1

您应该采用一些机制来确保 cronjobs/监控服务了解停机/计划维护。最近许多程序如Nagios、Zabbix都提供了这样的解决方案,您可以执行定期维护并通过其界面让Nagios意识到这一点,在此期间,Nagios不会尝试监控服务。

或者更简单,不要膨胀到使用重型 Nagios 来进行单个简单的服务监控服务,让 cronjob 脚本了解某些文件锁定机制,如果文件锁定存在,则忽略服务的任何状态,并且不要刺激或大喊大叫输出。管理员有责任确保在计划维护结束后删除文件锁定,以便 cronjob 脚本可以重新开始监视系统。

答案2

默认情况下,cron 会通过电子邮件将任何 cron 作业生成的任何输出发送到 stdout 或 stderr。

就我个人而言,我将所有输出重定向到日志文件,并将运行的日期戳作为文件名的一部分。

如果您不想收到通知,请执行相同的操作,然后使用另一个 cron 作业每 N 小时向您发送一次邮件

相关内容