我编写了一个实时公交跟踪程序,每分钟运行一次 cron 来检查公交服务。为了删除一些服务器资源,我将在 PHPfog 上创建一个实例,然后在那里执行 cron。我的问题是,知道 cron 是否失败的最佳方法是什么?如果失败,则运行本地服务器副本作为备份?
答案1
我将 stdout 和 stderr 都重定向到日志文件:
*/15 * * * * /usr/bin/php bus_tracking.php >> /var/log/bus_tracking.log 2>&1
并使用 Nagios 的检查日志文件监控此日志的插件:
command[check_bus_tracking]=/usr/bin/sudo /usr/local/nagios/libexec/check_logfiles --tag=bus_tracking --logfile=/var/log/bus_tracking.log --criticalpattern="error|Permission denied" --warningpattern="warning"
您还可以编写事件处理程序运行本地服务器副本。
答案2
似乎使用这样的服务会更容易https://deadmanssnitch.com。如果您的 cron 作业失败,您将收到警报。这样,您只需在真正重要的时候(即失败后)查看日志文件即可。