2017-02-16 8 views
0

У меня есть скрипт python, который проверяет, вверх или вниз сервер, и если он выключен, он отправляет электронное письмо вместе с несколькими системными журналами.Запуск cronjob каждые 5 минут, но остановился после первого выполнения?

То, что я хочу, чтобы держать проверку на сервере каждые 5 минут, поэтому я поставил cronjob следующим образом: */5 * * * * /python/uptime.sh

Поэтому, когда вниз сервера, он отправляет электронное письмо. Но я хочу, чтобы сценарий прекратил выполнение (отправка большего количества писем) после первого.

Может ли кто-нибудь помочь мне с тем, как это сделать? Спасибо.

+0

Вы пытались установить условие в скрипте, чтобы проверить, работает ли сервер, или вы действительно хотите удалить cronjob? – RageAgainstTheMachine

+0

весь скрипт проверяет, находится ли сервер вверх или вниз. Я просто хочу установить ограничение на cronjob, что если скрипт выполнит (в случае отказа сервера), я должен продолжать отправлять электронные письма до тех пор, пока сервер не будет резервным. вместо этого просто одно электронное письмо. –

ответ

0

Простым решением является то, что вы можете установить некоторую переменную env Bash MONITORING=true и позволить вашему скрипту python проверять эту переменную с помощью os.environ["MONITORING"]. Если эта переменная равна true, тогда проверьте, что сервер вверх или вниз, ничего не проверяйте. После того, как найден сервер вниз, установите эту переменную в false из сценария, такого как os.environ["MONITORING"] = false. Поэтому он не будет отправлять электронные письма, пока вы не установите эту переменную env снова true.

0
  • написать пустой While True скрипт, который работает навсегда (напр: «mailtrigger.py»)
  • запустить его с -nohup mailtrigger.py из оболочки в бесконечном цикле
  • когда сервер выключен проверить, если mailtrigger.py работает , если его не то прекратить mailtrigger.py (kill process id)

ваши следующие итерации не будет отправлять почту, так как mailtrigger.py не работает.