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.
Princeton/pu/libexec/eventhandlers/auto_restart

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