Сервер nagios не читает правильный код выхода

привет, мой сценарий не показывает правильный код выхода на стороне сервера.

SERVICENAME=`/etc/init.d/$NAME status| awk '{print $NF}' | sed 's/\.//g' | grep -i running | sed 's/\s//g'|tail -n 1`

if [ "${SERVICENAME}" == "Running" -o "${SERVICENAME}" == "running" ]
then
        STATUS="OK";
        EXITSTAT=0;
        elif [ "${SERVICENAME}" != "Running" -o "${SERVICENAME}" != "running" ]
        then
                STATUS="CRITICAL";
                EXITSTAT=2;
        else
                STATUS="WARNING";
                EXITSTAT=1;
        fi

echo "$STATUS- Service $NAME $EXITSTAT |Service $NAME=0;2;3"
exit $EXITSTAT
0
задан 13 April 2017 в 21:26
1 ответ

Я вижу некоторые ошибки в вашем скрипте. Если вы хотите дать SERVICENAME значение команды, вы должны добавить обратные кавычки до и после:

SERVICENAME=`/etc/init.d/$NAME status| awk '{print $NF}' | sed 's/\.//g' | grep -i unning | sed 's/\s//g'|tail -n 1`

Между , если и , то вы должны иметь точку с запятой:

if [ "${SERVICENAME}" == "Running" -o "${SERVICENAME}" == "running" ]; then STATUS="OK"; EXITSTAT=0; elif [ "${SERVICENAME}" != "Running" -o "${SERVICENAME}" != "running" ]; then STATUS="CRITICAL"; EXITSTAT=2; else STATUS="WARNING"; EXITSTAT=1; fi

И вуаля :

[root@test ~]# ./script
OK- Service slapd 0 |Service slapd=0;2;3 exit 0
0
ответ дан 5 December 2019 в 08:19

Теги

Похожие вопросы