Tomcat:Script que checa se o Tomcat está no Ar

From Wiki
Revision as of 23:44, 5 February 2013 by Ebasso (talk | contribs) (→‎Ver também)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Neste artigo mostramos como criar um script que verifica se o tomcat está em funcionamento, e caso ocorra algum problema ele inicia novamente o Tomcat. Com pouca alteração pode servir para outros funcionalidades

Pra começo de conversa, não recomendo esta solução para ninguém pois se o seu Tomcat teve um crash, o verdadeiro problema deve ser analisado.

O script irá rodar a cada 1 minuto verificando se o tomcat está no ar.

Criando o Script

Crie um script no local /usr/local/bin/check-apache-tomcat.sh, com o seguinte conteúdo:

#!/bin/bash
PID_ATUAL=`ps -efw | grep apache-tomcat | grep -v "check" | grep -v "grep" | awk '{ print $2 }'`
if [ -n "$PID_ATUAL"  ]; then
   echo "$(date) Apache Tomcat: OK ($PID_ATUAL) "
else
   echo "$(date) Apache Tomcat: RESTARTING"
   /opt/apache-tomcat-6.0.16/bin/startup.sh
fi
exit 0

Atenção ao local onde está o script de startup do Tomcat.

Mude a permissão para

> chmod  a+rx /usr/local/bin/check-apache-tomcat.sh

Adicionando no Crontab

Agora iremos fazer com que o script seja executada a cada minuto, utilizando a cron do Linux

Adicionei no crontab

> crontab  -e

a seguinte linha

* * * * * /usr/local/bin/check-apache-tomcat.sh >> /var/log/check-apache-tomcat.log 2>&1

Salve e feche a crontab.

Verificando

O script irá gerar um log da seguinte forma

>tail /var/log/check-apache-tomcat.log
Thu Feb 12 10:31:01 BRST 2009 Apache Tomcat: OK (3719)
Thu Feb 12 10:32:01 BRST 2009 Apache Tomcat: OK (3719)
Thu Feb 12 10:33:01 BRST 2009 Apache Tomcat: OK (3719)
Thu Feb 12 10:34:01 BRST 2009 Apache Tomcat: OK (3719)
Thu Feb 12 10:35:01 BRST 2009 Apache Tomcat: RESTARTING 
Thu Feb 12 10:36:01 BRST 2009 Apache Tomcat: OK (5820)
Thu Feb 12 10:37:01 BRST 2009 Apache Tomcat: OK (5820)
Thu Feb 12 10:38:01 BRST 2009 Apache Tomcat: OK (5820)
Thu Feb 12 10:39:01 BRST 2009 Apache Tomcat: OK (5820)


Ver também