Монит выполняется только один раз - PullRequest
0 голосов
/ 06 мая 2019

Monit в данный момент выполняется один раз.Я вижу в файле журнала, что он проверяет каждый цикл, однако, выполнение происходит только один раз, когда я перезагружаю monit.

check host somehost with address example.com
# every "* 8-19 * * 1-5"
 if failed
    port 443
    protocol https
    and certificate valid > 1095 days
 then exec "/var/local/bin/mtCert.sh"

1 Ответ

0 голосов
/ 09 июня 2019

Monit основан на triggers, он в основном только отслеживает изменения .

Таким образом, если настроенное состояние не меняется, monit не будет запускать сценарийснова по умолчанию.См. Примечание по 5.16.0 в Monit Changelog :

Исправлено: Действие exec теперь выполняется только один раз при изменении состояния, так же, какпредупреждающее действие.Новая опция повтора может быть использована для повторения действия exec после заданного количества циклов, если ошибка не устранена.Синтаксис:

if <test> then exec <script> [repeat every [x] cycle(s)]

Если вы хотите использовать старое поведение, используйте «повторить каждый цикл».Пример:

if failed port 1234 then exec "/usr/bin/myscript.sh" repeat every cycle

Итак, если вам действительно нужно, чтобы скрипт вызывался несколько раз, просто добавьте repeat:

check host somehost with address example.com
# every "* 8-19 * * 1-5"
  if failed
    port 443
    protocol https
    and certificate valid > 1095 days
  then exec "/var/local/bin/mtCert.sh"
  and repeat every 10 cycles
...