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
# http://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 http://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
¿Te ha sido útil esta web?

Deja una pequeña propina al autor! ¿Aún no sabes qué es Bitcoin?

1Mojitovwnpokdo8uLXvG93pEhBF6MNFoo

Tagged as: