A veces al actualizar un sitio web, en mi caso me ha pasado con wordpress, un pluigin me da problemas y tumba el servidor espontaneamente, encontrar el problema puede ser dificil y tomar tiempo, una vez me fue muy util esto ya por lo menos sabia que si se caia no seria por mucho tiempo, NO RECOMIENDO ESTO COMO SULUCION DEFINITIVA PARA ESTE TIPO DE PROBLEMAS.
tutorial para Debian 12 (bookworm) con apache.
/usr/local/bin/
:cd /usr/local/bin/
sudo vim check_apache.sh
check_apache.sh
, pega el siguiente código:Dentro del archivo `check_apache.sh`, pega el siguiente código:
#!/bin/bash
# Verificar si Apache está corriendoif ! systemctl is-active --quiet apache2; thenecho"Apache está caído. Reiniciando..."
systemctl restart apache2
# Guardar un log para monitorear la fecha y hora del reinicioecho"$(date): Apache reiniciado" >> /var/log/apache_restart.log
elseecho"Apache está corriendo correctamente."fi
Este script:
apache2
está activo./var/log/apache_restart.log
).Una vez guardado el archivo, dale permisos de ejecución:
sudo chmod +x /usr/local/bin/check_apache.sh
Ahora configuraremos cron
para ejecutar este script automáticamente cada 5 minutos.
Ejecuta el siguiente comando para abrir el archivo crontab:
sudo crontab -e (Puede preguntarte que editor quieres usar, para fines del curso se recomienda "vim")
Añadir la tarea programada
Al final del archivo, añade la siguiente línea:
*/5 * * * * /usr/local/bin/check_apache.sh
Esta línea indica que el script se ejecutará cada 5 minutos. Asegúrate de que la ruta del script sea correcta (en este caso /usr/local/bin/check_apache.sh
).
Para guardar y salir del editor de texto vim en Debian, sigue estos pasos:
Cuando termines de editar el archivo, presiona Esc para asegurarte de estar en el modo de comandos de vim.
Escribe :wq y presiona Enter. Esto guardará los cambios y cerrará el archivo.
Si quieres salir sin guardar, puedes usar :q! y presionar Enter.
Para asegurarte de que todo esté funcionando correctamente:
Revisa si cron está corriendo:
sudo systemctl status cron
Verifica el log de reinicio de Apache en /var/log/apache_restart.log
para ver si se reinicia cuando Apache se cae.
Puedes probarlo manualmente deteniendo Apache y esperando a que cron lo reinicie:
sudo systemctl stop apache2
Después de 5 minutos, cron debería ejecutar el script y reiniciar Apache automáticamente.
Si deseas verificar que cron está ejecutando el script, puedes ver los logs de cron con:
grep CRON /var/log/syslog
El script mencionado no debe considerarse una solución definitiva porque solo resuelve de forma temporal la caída del servicio Apache, sin abordar la causa subyacente del problema. Reiniciar Apache repetidamente puede enmascarar errores más graves en la configuración, el sistema o la aplicación web, lo que podría llevar a inestabilidad a largo plazo. Esta solución es adecuada únicamente para situaciones en las que el servidor debe mantenerse en línea de manera urgente o temporal, pero es importante investigar y solucionar las verdaderas causas de la falla para garantizar un funcionamiento estable y confiable.