Script para reiniciar servicios caídos.
Muchas veces hay procesos que tenemos colgados o se estopean debido a algún error, y nos damos cuenta de que el mismo se detuvo cuando ya tenemos el problema arriba.
Esto es una constante, los servicios de un servidor, más cuando interaccionan con algún panel de control tipo cPanel, se autogestionan y son reiniciados estopeados parados automáticamente.
En algunos casos este proceso de control puede fallar y nos queda un servicio colgueti o esperando alguna acción, cosa que nos daremos cuenta ante el reclamo de algún cliente o ante la mirada aguda sobre el sistema (cosa que no siempre se puede hacer)
Existe una manera fácil y práctica de reiniciar aquellos servicios que se cayeron, mediante un script shell
Vamos a ello:
1) Eligiremos el servicio a monitorizar, hacemos uso del Mysql como enejmplo en este caso:
# vi verificar_myslq.sh
#!/bin/bash
RESTART="/etc/init.d/mysqld restart"
PGREP="/usr/bin/pgrep"
MEMCACHED="mysqld"
# buscamos que exista el proceso
$PGREP ${mysqld}
# sino existe id de proceso y el comando anterior devuelve 0
if [ $? -ne 0 ]
then
# restablecemos mysql y enviamos un email
$RESTART | mail -s "Se reinició Mysql `date "+%c"`" mail@soyadmin.com
fi
Lenguaje del código: PHP (php)
El funcionamiento el script es el siguiente: se hace un chequeo sobre el servicio seleccionado, si el mismo devuelve que esta activo, continua y no hace nada.
En el caso de que el chequeo devuelva que el servicio está stop, se lo reinicia y envía un email.
2) Creamos un cron para el script, con ejecución cada 10 minutos:
# crontab -e
*/10 * * * * /bin/sh /root/shell_scripts/verify_myslq.sh
Lenguaje del código: PHP (php)
Comentarios recientes