运行 cronjob 每 5 分钟一次,但在第一次执行后停止?
Running cronjob every 5 minutes but stopped after first execution?
我有 python 脚本来检查服务器是启动还是关闭,如果服务器关闭,它会发送一封电子邮件以及一些系统日志。
我想要的是每 5 分钟检查一次服务器,所以我把 cronjob 如下:
*/5 * * * * /python/uptime.sh
因此,每当服务器出现故障时,它都会发送一封电子邮件。但我希望脚本在第一个之后停止执行(发送更多电子邮件)。
谁能帮我解决这个问题?
谢谢。
简单的解决方案是,您可以设置一些 Bash 环境变量 MONITORING=true
并让您的 python 脚本使用 os.environ["MONITORING"]
检查该变量。如果该变量是 true
则检查服务器是启动还是关闭,否则不检查任何内容。发现服务器宕机后,从 os.environ["MONITORING"] = false
等脚本中将该变量设置为 false
。因此,在您再次设置该环境变量之前,它不会发送电子邮件 true
.
- 写一个空的
While True
脚本,运行 永远存在(例如:"mailtrigger.py")
- 运行 它与 shell 中的
-nohup mailtrigger.py
无限循环
- 一旦服务器关闭,检查 mailtrigger.py 是否为 运行ning,如果它
不然后终止 mailtrigger.py (
kill process id
)
您的下一次迭代不会发送邮件,因为 mailtrigger.py 不是 运行ning。
我有 python 脚本来检查服务器是启动还是关闭,如果服务器关闭,它会发送一封电子邮件以及一些系统日志。
我想要的是每 5 分钟检查一次服务器,所以我把 cronjob 如下: */5 * * * * /python/uptime.sh
因此,每当服务器出现故障时,它都会发送一封电子邮件。但我希望脚本在第一个之后停止执行(发送更多电子邮件)。
谁能帮我解决这个问题? 谢谢。
简单的解决方案是,您可以设置一些 Bash 环境变量 MONITORING=true
并让您的 python 脚本使用 os.environ["MONITORING"]
检查该变量。如果该变量是 true
则检查服务器是启动还是关闭,否则不检查任何内容。发现服务器宕机后,从 os.environ["MONITORING"] = false
等脚本中将该变量设置为 false
。因此,在您再次设置该环境变量之前,它不会发送电子邮件 true
.
- 写一个空的
While True
脚本,运行 永远存在(例如:"mailtrigger.py") - 运行 它与 shell 中的
-nohup mailtrigger.py
无限循环 - 一旦服务器关闭,检查 mailtrigger.py 是否为 运行ning,如果它
不然后终止 mailtrigger.py (
kill process id
)
您的下一次迭代不会发送邮件,因为 mailtrigger.py 不是 运行ning。