监控当前执行一次。我可以在日志文件中看到它在每个周期进行一次检查,但是,当我重新加载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"
答案 0 :(得分:0)
监控基于triggers
,它基本上仅跟踪更改 。
因此,如果配置的状态未更改,则默认情况下,monit不会再次触发脚本。请参见Monit Changelog上有关5.16.0的注释:
已修复::现在,exec操作仅在状态更改时执行一次,与警报操作相同。如果错误仍然存在,则可以使用新的repeat选项在给定的周期数后重复执行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