#!/bin/bash
# little script to check webservers and restart if necessary...
# Added by Phil 26/01/2009, generates a random number between 3 and 10 to 4 decimal places with the
# intent that it be used by the sleep function to generate a pause between Apache's stop and start.
function getSleepTime()
{
number=0 #initialize
MIN=8000
MAX=12000
while [ "$number" -le $MIN ]
do
number=$RANDOM
let "number %= $MAX"
done
SLEEP_TIME=$(echo "scale=4; $number / 1000" | bc)
}
for server in `seq 2 5`
do
result=$(curl -sfm 1 --stderr /dev/null "http://192.168.1.${server}/test.php" | grep -c YES)
if [ $result == "0" ]
then
getSleepTime
/usr/bin/logger "Restarting $server with delay of $SLEEP_TIME"
ssh watchme@${server} "sudo /etc/rc.d/rc.httpd stop ; sleep $SLEEP_TIME ; sudo /etc/rc.d/rc.httpd start" > /dev/null
fi
done