WatchDog para Apache
Pequeño script para ejecutar desde CRON que supervisa que Apache se encuentre funcionando y en caso de no ser así mata los procesos huérfanos y reinicia el servicio. Además nos envía un email con las últimas líneas del log y el resultado de las acciones llevadas a cabo.
#!/bin/bash
#Apache WatchDog
#Script adaptado por imojito.com
# https://imojito.com/watchdog-para-apache.html
TMPDIR=/tmp/apache-watchdog
EMAIL=mi@email.com
mkdir -p $TMPDIR
if ( wget --timeout=30 -q -P $TMPDIR http://localhost/robots.txt )
then
# Apache estaba funcionando previamente
touch ~/.apache-up
else
# Apache está caído
if [[ -f ~/.apache-up ]]
then
# e-mail con información
echo -n "Apache dejó de funcionar a las " > $TMPDIR/mail
date >> $TMPDIR/mail
echo >> $TMPDIR/mail
echo "Access log:" >> $TMPDIR/mail
tail -n 30 /var/log/apache2/access_log >> $TMPDIR/mail
echo >> $TMPDIR/mail
echo "Error log:" >> $TMPDIR/mail
tail -n 30 /var/log/apache2/error_log >> $TMPDIR/mail
echo >> $TMPDIR/mail
# kick apache
echo "Kicking Apache..." >> $TMPDIR/mail
/etc/init.d/apache2 stop >> $TMPDIR/mail 2>&1
killall -9 apache2 >> $TMPDIR/mail 2>&1
/etc/init.d/apache2 start >> $TMPDIR/mail 2>&1
# enviar email
echo >> $TMPDIR/mail
echo "Buena Suerte!" >> $TMPDIR/mail
echo "Apache WatchDog https://imojito.com" >> $TMPDIR/mail
mail -s "Apache WatchDog" $EMAIL < $TMPDIR/mail
rm ~/.apache-up
rm -f $TMPDIR/mail
fi
fi
rm -f $TMPDIR/robots.txt
rmdir $TMPDIR