嗨,Stackoverflow社区,
我需要一个bash脚本的帮助,因为我是新手。
我想实现的是,我们有一个windows服务器,有时它会占用90%的内存,所以每当nagios捕获它时,我们都希望通过nrpe重新启动这些服务。但在重新启动所有服务之前,必须先启动第一个服务,一旦启动,就继续下一个服务重新启动。
另一种选择是停止所有4个服务,然后依次启动它们。
下面是我写的脚本:
case "$1" in
OK)
;;
WARNING)
;;
UNKNOWN)
;;
CRITICAL)
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
不知道我在哪里犯了错误,如果有任何反馈,我将不胜感激。
谢谢