Como reiniciar apache2 debian con crontab
Todos aquellos que gestionamos servidores web dedicados en entornos Linux hemos visto en alguna ocasión como se paran los procesos que gestionan el servicio web (comúnmente apache2 en máquinas con distribuciones Linux).
Para solucionar este problema y poder reiniciar apache2 tenemos varias opciones sencillas: reiniciar apache2 a mano mediante la línea de comandos y/o reiniciar el servicio apache2 periódicamente de forma automática mediante un cron.
Estas soluciones aunque rápidas y efectivas en muchas ocasiones tienen puntos negativos, como por ejemplo, tener que estar presente cuando se cae el servicio web apache2 (para inicializarlo manualmente) y/o tener que reiniciar mediante un cron un servicio web que está funcionando correctamente…
Como reiniciar apache2 debian con crontab
De este modo, propongo una solución igualmente sencilla y más funcional… comprobar periódicamente y de forma automática mediante un cron si el servicio web está operativo y en caso negativo reiniciar apache2 sin necesidad de estar presentes.
A continuación, adjunto el código fuente del shell script para reiniciar apache2 en caso de que no este levantado el servicio web:
#!/bin/bash ###################################################### # # APACHE2 RESTART # # This is the main apache2 restart script. # By Alejandro Arco - https://alejandroarco.es # # This program is free software and is available # under the terms of the GNU General Public License. # ###################################################### set -e # Variables NPRO_ACT="$(ps aux | grep apache2 | wc -l)" NPRO_MIN="1" # Script if [ "$NPRO_ACT" -le "$NPRO_MIN" ]; then /etc/init.d/apache2 restart fi
- NPRO_ACT
Número de procesos de apache2 actuales. - NPRO_MIN
Número de procesos sin iniciar apache2 (comprobar mediante el comando ps aux | grep apache2 | wc -l el número de procesos por defecto).
Posteriormente, tendríamos que darle permisos de ejecución a nuestro shell script para reiniciar apache2 mediante el comando chmod y después, agregar a nuestro cron la periocidad de ejecución del mismo con el comando crontab -e:
# # Apache2 - reiniciar cada 3 min si no esta activo # */3 * * * * /scripts/apache2/apache2_restart.sh &>/dev/null
Descargar reiniciar apache2 bash script
Os adjunto el fichero apache2_restart.sh para todos aquellos que queráis descargarlo.
Si tenéis alguna duda sobre como usar el shell script para reiniciar apache2 no dudéis en dejarme un comentario, lo responderé a la menor brevedad de tiempo posible.
Hola, oye ¿cómo creaste esos 2 scripts?, me podrias explicar.
Gracias
Muchas gracias por este código, pero me gustaría saber si hay algo parecido, no para el proceso sino para la web como tal. Me explico, puede que el servicio esté activo pero que no cargue la web pq esta bloqueado, sería una especie de ping al puerto 80 con una url.