我想尝试用monit监视postfix队列.我从Stackoverflow的人那里得到了一个例子.我的monit版本是最新版本
这是Monit版本5.10
在/etc/monit.d我postfixlocal与
check program postfixcola with path "/usr/local/bin/postfixcola.sh"
#if status != 0 then alert
if status > 1 then alert
Run Code Online (Sandbox Code Playgroud)
然后/usr/local/bin/我postfixcola.sh用
#!/bin/sh
QUEUE=`/usr/sbin/postqueue -p | tail -n1 | awk '{print $5}'`
exit $QUEUE
Run Code Online (Sandbox Code Playgroud)
但Monit每次都会抱怨脚本的输出.我已经做了测试,设置和回显之前exit和测试时它返回1(因为后缀的队列是1)
但错误仍然存在: [CET Dec 9 11:10:07] error : 'postfixcola' '/usr/local/bin/postfixcola.sh' failed with exit status (2) -- no output
我真的不知道这里有什么问题,有什么想法吗?
在 bash 脚本中,您应该将消息回显到 /dev/stderr 中:
#!/bin/bash
QUEUE=`/usr/sbin/postqueue -p | tail -n1 | awk '{print $5}'`
if [ $QUEUE -ne 0 ] ; then
echo "Queue length > $QUEUE" > /dev/stderr
fi
exit $QUEUE
Run Code Online (Sandbox Code Playgroud)