привет мой скрипт не показывает правильный код выхода на стороне сервера.
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
Я вижу ошибки в вашем скрипте. Если вы хотите присвоить SERVICENAME значение команды, вы должны добавить обратные кавычки до и после:
SERVICENAME=`/etc/init.d/$NAME status| awk '{print $NF}' | sed 's/\.//g' | grep -i unning | sed 's/\s//g'|tail -n 1`
Между if
и then
у вас должна быть точка с запятой:
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