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