1

Como iniciar apache automaticamente en caso de una caida del servicio.

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á 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:

  • 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.

Escribe tu comentario
+ 2