Поскольку у меня низкая репутация, я не могу пометить ее как дубликат, поэтому я не могу ответить на вопрос здесь
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 file test_timestamp with path /tmp/file.txt
every 10 cycles
# 'script.sh check' should be run always when this monit check is run but it is not.....
if timestamp
is older than 1 seconds
then exec "/tmp/script.sh check"
as uid "abc" and gid "abc"
and repeat every 10 cycles
if timestamp
is older than 15 minutes
then exec "/tmp/script.sh active"
as uid "abc" and gid "abc"
and repeat every 2 cycles
alert ab@cd.com on { timestamp } with reminder on 20 cycles