You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.0 KiB
Bash
76 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
if [[ "$#" -ne "6" ]]; then
|
|
echo "Usage: $0 "'"$HOSTNAME$" "$SERVICENAME$" $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ "$SERVICEOUTPUT$"'
|
|
exit 1
|
|
fi
|
|
|
|
hname="$1"
|
|
sname="$2"
|
|
sstate="$3"
|
|
stype="$4"
|
|
sattempt="$5"
|
|
sout="$6"
|
|
|
|
nagios="/usr/local/monitoring/naemon"
|
|
commands="plugins"
|
|
nrpe="check_nrpe"
|
|
nrpe_port="9666"
|
|
shutcmd="shutdown"
|
|
|
|
sout_re='Failed to fetch.*Answer: 500|Unable to login to Adobe Rights Management. Login failed|Web server returned 500'
|
|
|
|
case $sstate in
|
|
OK) # Recovery
|
|
exit 0
|
|
;;
|
|
|
|
WARNING)
|
|
;;
|
|
|
|
CRITICAL)
|
|
case $sattempt in
|
|
[3-5])
|
|
#if [[ "$sout" =~ $sout_re ]]; then
|
|
for attmpt in 1 2 3; do
|
|
outp=`${nagios}/${commands}/${nrpe} -H $hname -p $nrpe_port -c $shutcmd`
|
|
stat=$?
|
|
|
|
echo -n "$(date): " >> /usr/local/monitoring/log/auto_restart.log
|
|
echo -n ${nagios}/${commands}/${nrpe} -H $hname -p $nrpe_port -c $shutcmd >> /usr/local/monitoring/log/auto_restart.log
|
|
echo ". Result: $outp" >> /usr/local/monitoring/log/auto_restart.log
|
|
|
|
if [[ $outp =~ "No output available from command" ]]; then
|
|
echo "The server $hname has been successfully sent a restart sequence on attempt $attmpt" | /bin/mail -s "Server Restarted" iam@Princeton.EDU epm-list@Princeton.EDU
|
|
break
|
|
fi
|
|
done
|
|
|
|
if ! echo "$outp" | grep -q "No output available from command"; then
|
|
#echo "The server $hname has been sent a restart sequence but we are not positive it worked. The result was \"$outp\". Please check at your convenience." #| /bin/mail -s "Server *might have* Restarted" epm-list@Princeton.EDU iam@Princeton.EDU
|
|
echo "The server $hname has been sent a restart sequence but we are not positive it worked. The result was \"$outp\". Please check at your convenience." | /bin/mail -s "Server *might have* Restarted" epm-list@Princeton.EDU iam@Princeton.EDU
|
|
fi
|
|
#fi
|
|
|
|
exit $stat
|
|
;;
|
|
|
|
*)
|
|
# Do nothing - too early to do anything
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
UNKNOWN)
|
|
echo "Service state is unknown"
|
|
exit 1
|
|
;;
|
|
|
|
*)
|
|
echo "Invalid service state passed"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|