每5分钟运行一次cronjob,但在第一次执行后停止?

时间:2017-02-16 10:32:32

标签: python cron crontab

我有python脚本来检查服务器是启动还是关闭,如果它关闭,它会发送一封电子邮件以及一些系统日志。

我想要的是每5分钟检查一次服务器,所以我把cronjob如下: * / 5 * * * * /python/uptime.sh

因此,每当服务器停机时,它都会发送一封电子邮件。但我希望脚本在第一个脚本之后停止执行(发送更多电子邮件)。

任何人都可以帮我解决这个问题吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

简单的解决方案是,您可以设置一些Bash env变量MONITORING=true并让您的python脚本使用os.environ["MONITORING"]检查该变量。如果该变量为true,则检查服务器是启动还是关闭,否则不要检查任何内容。找到服务器关闭后,将该变量从false这样的脚本设置为os.environ["MONITORING"] = false。因此,在您再次设置该env变量true之前,它不会发送电子邮件。

答案 1 :(得分:0)

  • 写一个永远运行的空While True脚本(例如:“mailtrigger.py”)
  • 在无限循环的shell中使用-nohup mailtrigger.py运行它
  • 一旦服务器关闭,检查mailtrigger.py是否正在运行,如果它正在运行 然后终止mailtrigger.py(kill process id

由于mailtrigger.py未运行,您的下一次迭代将不会发送邮件。