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