第一次发生故障时向系统管理员发送电子邮件的好方法是什么?

第一次发生故障时向系统管理员发送电子邮件的好方法是什么?

我有一个 cron 任务,它会复制一些文件等。有时它会因为无法访问主机而开始失败。当它开始如果失败了,我希望收到通知 - 但我不想每 5 分钟收到一封电子邮件,告诉我问题仍在继续。

我可以想出一些方法来解决问题,但我想知道这个功能是否已经存在?服务器是 OSX,但我只能通过 shell 访问它。

答案1

嗯,一个简单的解决方案就是在第一次失败和通知时只触碰“状态”文件。然后下次运行脚本时,检查该状态文件,如果存在,则跳过通知。下次成功复制后,删除状态文件。

答案2

就像是监控可以潜在地实现您想要的功能。让您的脚本将其错误写入文件,然后设置 monit 在日志第一次变为非零时发出警报。语法非常灵活,因此我相信您可以自定义定义以执行您想要的操作。

# cront
0 0 0 0 0 root script 2>&1 > /var/scripts/myscript_state

#monit config
check file myscriptdata with path /var/scripts/myscript_state
   if changed size then alert

相关内容