这更像是“一般架构”问题。如果你有一个定期运行的cron作业(甚至是一个Windows预定任务),它会让你发送一封好的电子邮件/短信,但如何让我得到通知不行吗?基本上,如果作业没有在预定的时间运行,或者Windows / linux有自己的一组挂断,阻止任务运行......?
只是寻找那些曾经遇到过这种情况并想出有趣解决方案的人的想法......
答案 0 :(得分:0)
我过去所做的一种方法就是简单地放在每个脚本的顶部(比如checkUsers.sh
):
touch /tmp/lastrun/checkUsers.sh
然后让另一个定期运行的作业使用find
来查找tmp/lastrun
中超过一天的所有“标记”文件。
您可以使用/tmp/lastrun/hour/
和tmp/lastrun/day/
来分隔具有不同日程的作业。
请注意,这不会捕获从不运行的脚本,因为它们永远不会为find
创建初始文件。为了减轻这种情况,您可以:
并且,如果您的cron作业不是脚本,请将touch
直接放入crontab
:
0 4 * * * ( touch /tmp/lastrun/daily/checkUsers ; /usr/bin/checkUsers )
验证简单的find
脚本比验证每个cron
个工作要容易得多。