2014-12-09 8 views
6

Я хочу попытаться контролировать постфиксную очередь с monit. Я привел пример от людей Stackoverflow. Моя версия Monit является последнимПрограмма проверки Monit возвращает «no output»

Это 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 

, а затем в /usr/local/bin/ меня postfixcola.sh с

#!/bin/sh 
QUEUE=`/usr/sbin/postqueue -p | tail -n1 | awk '{print $5}'` 
exit $QUEUE 

Но Monit жалобы каждый раз о выходе сценария. Я сделал тест, установка и эхо перед тем exit и в момент испытания он возвратил 1 (потому что очереди постфикса было 1)

Но ошибка остается: [CET Dec 9 11:10:07] error : 'postfixcola' '/usr/local/bin/postfixcola.sh' failed with exit status (2) -- no output

Я действительно не знаю, в чем проблема здесь, какие-то мысли?

ответ

0

В вашем Баш скрипт, вы должны повторить сообщение в/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