我们正在我们的网站上运行一个cron作业,并且正在我们的服务器上使用数据库进行非常重要的工作。如果该cron作业失败,我们需要得到通知,以便我们知道它需要做的工作没有完成。 如果cron没有运行,任何方法都可以。 服务器一旦cron运行就已经发送了一封电子邮件,但是我们每天都有大量的电子邮件,如果cron每5分钟运行一次,如果它没有运行,我们就无法跟踪电子邮件,这就是为什么希望能够跟踪cron的失败。
答案 0 :(得分:1)
您可以将辅助计算机指定为“监听器”。设置数据库(在任一计算机上)并让cron作业在启动时向该数据库写入一行(包括日期戳)。然后在辅助计算机上安排另一个cron作业,该作业会定期检查此数据库以查看上次运行主cron作业的时间。如果超过X时间,那么辅助cron作业会向您发送一封电子邮件,通知您主要脚本从未运行过。
注意:您也可以只使用两台计算机都具有写访问权限的单个文件,并在其中记录最后运行的时间戳,但数据库方法的优点在于它可用作可查询的日志所有cron活动。
答案 1 :(得分:0)
某些服务器可以在每次CRON运行时发送电子邮件。这与你所要求的相反;但是,它可以提供一个目标电子邮件文件夹来监控程序。
答案 2 :(得分:0)
当cron脚本失败时,您可以使用一些服务来获取通知。
这些通常通过设置cron任务以使其运行,然后使用标识符
调用服务来工作例如在你的crontab中:
/path/to/very_important_script.sh && curl https://api.isitworking.info/c/SWITCH_IDENTIFIER &> /dev/null
如果你的脚本在N分钟后没有办理登机手续,那么监控服务就知道发生故障并让你知道。
这可能比电子邮件的想法更可靠;它不会假设发生故障的服务器仍然可以发送警告邮件!
完全披露:我写了IsItWorking.info,但还有其他人做了类似的工作。