Привет сообщество Stackoverflow,
Мне нужна помощь со скриптом bash, так как я новичок в этом.
Что я пытаюсь сделать, у нас есть сервер Windows, иногда он занимает 90% памяти, поэтому всякий раз, когда nagios его перехватывает, мы хотим перезапустить эти сервисы через nrpe. Но прежде чем перезапускать все службы, должна появиться первая служба, а после ее запуска продолжить со следующей перезагрузкой службы.
Другой вариант - остановить все 4 службы и запустить их последовательно.
Вот сценарий, который я написал:
case "$1" in
OK)
;;
WARNING)
;;
UNKNOWN)
;;
CRITICAL) ## DECISION ENGINE RESTART
echo -n "Restarting Decision Engine_1"
cat /usr/local/nagios/libexec/mail/DeServiceRestart.txt | mail -s "Restarting DE services" email@someteam.com -r Nagios@ATL-NM-01
/usr/local/nagios/libexec/check_nrpe -H "$2" -p 5666 -c restart_service -a DecisionEngine_1;
if /usr/local/nagios/libexec/check_nrpe -H "$2" -t 30 -c check_service -a DecisionEngine_1 'crit=not state_is_ok()' > OK:
then
echo -n "Restarting Decision Engine_2"
/usr/local/nagios/libexec/check_nrpe -H "$2" -p 5666 -c restart_service -a DecisionEngine_2
if /usr/local/nagios/libexec/check_nrpe -H "$2" -t 30 -c check_service -a DecisionEngine_2 'crit=not state_is_ok()' > OK:
then
echo -n "Restarting Decision Engine_3"
/usr/local/nagios/libexec/check_nrpe -H "$2" -p 5666 -c restart_service -a DecisionEngine_3
if /usr/local/nagios/libexec/check_nrpe -H "$2" -t 30 -c check_service -a DecisionEngine_3 'crit=not state_is_ok()' > OK:
then
echo -n "Restarting Decision Engine_4"
/usr/local/nagios/libexec/check_nrpe -H "$2" -p 5666 -c restart_service -a DecisionEngine_4
else
echo " Restart is complete"
fi
;;
esac
exit 0
Не уверен, где я допустил ошибку, буду признателен за любые отзывы.
Спасибо!