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.
Paso 1. Abre una terminal en tu servidor Debian 12.
Paso 2. Navega al directorio donde quieres guardar el script, por ejemplo /usr/local/bin/
:
cd /usr/local/bin/
Paso 3. Crea el archivo del script:
sudo vim check_apache.sh
Paso 4 Dentro del archivo 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á corriendo
if ! systemctl is-active --quiet apache2; then
echo "Apache está caído. Reiniciando..."
systemctl restart apache2
# Guardar un log para monitorear la fecha y hora del reinicio
echo "$(date): Apache reiniciado" >> /var/log/apache_restart.log
else
echo "Apache está corriendo correctamente."
fi
Este script:
- Verifica si el servicio
apache2
está activo. - Si el servicio no está corriendo, lo reinicia y escribe un mensaje en un archivo de log (
/var/log/apache_restart.log
). - Si Apache está funcionando bien, simplemente muestra un mensaje en la terminal (en caso de que lo ejecutes manualmente).
Paso 5: Dar permisos de ejecución al script
Una vez guardado el archivo, dale permisos de ejecución:
sudo chmod +x /usr/local/bin/check_apache.sh
paso 6. Configurar Cron para Ejecutar el Script
Ahora configuraremos cron
para ejecutar este script automáticamente cada 5 minutos.
Paso 7: Abrir el archivo de configuración de cron
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
).
Paso 8: Guardar y salir
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.
Paso 9: Verificar que Cron y el Script Funcionen Correctamente
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.
. Opcional: Verificar el Log de Cron
Si deseas verificar que cron está ejecutando el script, puedes ver los logs de cron con:
grep CRON /var/log/syslog
IMPORTANTE
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.
Curso de Introducción a la Terminal y Línea de Comandos