Crear sh y ejecutarlo con Cron cada 5 minutos Ubuntu


En uno de los servidores que manejamos en la empresa el servidor de aplicaciones (Tomcat) por algún motivo se cae cada cierto tiempo y esto hace que los clientes no puedan acceder a las aplicaciones.
Normalmente para que todo este bien y los clientes no tengan problemas al acceder a las apps en el servidor tenían que estar 18 procesos del Tomcat activos, esto significaba que todo estaba corriendo perfecto, pero si solo habían 17 procesos o menos significaba que uno de los servicios de Tomcat se había caído y daba problemas.

Para que esto no sucediera mas, lo que hicimos fue crearnos un sh que cuenta la cantidad de procesos del Tomcat, si son 18 o mas significa que todo esta bien, en caso de que sea 17 o menos reiniciamos  el Tomcat para que vuelva a levantar todos los servicios.

Source del ReinicioTomcat.sh:

#!/bin/bash

Fecha=`date`
CantidadProcesos=$(ps aux | grep java | wc -l)

if (( CantidadProcesos >= 18 )); then
    echo "Todos los procesos estan Up --- $Fecha"
else
    sudo /etc/init.d/tomcat8 restart
    echo "Reiniciando Servidor Tomcat --- $Fecha"
fi

Ahora colocamos este sh en el crontab, en Ubuntu este archivo se encuentra en /etc/crontab

posicionados en /etc hacemos sudo vi crontab y añadimos:

*/5 * * * * root /home/user/ReinicioTomcat.sh >> /var/log/TomcatCrontab.log

Como se puede observar, este sh se ejecuta cada 5 minutos y cuenta los procesos, si hay menos de 18 se reinicia el Tomcat. La salida del sh la guardo en el archivo TomcatCrontab.log porque deseaba saber con que frecuencia se reiniciaba el Tomcat.

Nota: Si no se ejecuta por requerir permisos, cambiar los permisos al sh, un ejemplo común:

sudo chmod 777 ReinicioTomcat.sh

Comentarios