
¿Alguien puede arrojarme algo de luz y señalarme en la dirección correcta?
Quiero crear un script en bash que verifique las excepciones en los registros durante el inicio de la aplicación Tomcat. Este script debería poder detectar la creación de nuevos archivos sobre la marcha, tal vez a través de inotify
.
Este script debe verificar constantemente el directorio de registros en busca de nuevas líneas en los archivos de registro y escribir la que contiene las palabras Exception:
o ERROR
to /var/log/errorcheckernotifier.txt
.
Cuando el script detecta esta línea, INFO: Server startup in
debe escribir TOMCAT IS STARTED
la /var/log/errorcheckernotifier.txt
cantidad de excepciones detectadas durante el inicio.
Este script no debe sobrescribir el contenido del archivo errorcheckernotifier.txt
. Añádelo en su lugar.
¿Cómo puedo mantener este script en ejecución y detectar más inicios, contar excepciones, etc.?
Respuesta1
Puedo darle la parte de "inicio" de mis scripts de inicio de Tomcat, si eso ayuda.
comenzar) echo -n "Iniciando $FOO_BASE_JM " ## Iniciar demonio con startproc(8). Si esto falla ## el valor de retorno lo establece apropiadamente startproc. si ps -efwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; entonces echo "El proceso $FOO_BASE_JM ya existe" rc_failed 1 demás LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l) exportar CATALINA_OPTS ########/sbin/startproc $FOO_BIN si [ "$(id -un)" = "tomcat" ]; entonces $FOO_BIN inicio || rc_failed 1 demás /bin/su tomcat $FOO_BIN inicio || rc_failed 1 fi echo -n "Esperando que aparezca el proceso". peso=0 proceso_visto=verdadero mientras ! ps -efwwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; hacer dormir 2 eco -n . peso=$(($peso+1)) si [ "$peso" -gt 30 ]; entonces eco echo "Tiempo de espera: no puedo ver el proceso. Debes verificar los registros". rc_failed 1 proceso_visto = falso romper fi hecho si [ "x$process_seen" = "xtrue" ]; entonces eco echo -n "Esperando inicio". peso=0 mientras ! cola +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFORMACIÓN: Inicio del servidor"; hacer dormir 2 eco -n . peso=$(($peso+1)) si [ "$peso" -gt 30 ]; entonces eco echo "Tiempo de espera: no se pueden encontrar signos de inicio exitoso del servidor en el registro. Verifique". rc_failed 1 romper fi hecho cola +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Inicio del servidor" && tail +$LOGLINES /opt/$FO O_BASE_JM/logs/catalina.out | grep "INFORMACIÓN: Inicio del servidor" fi fi # si no existe ningún proceso # Recuerde el estado y sea detallado estado_rc -v ;;
Como alternativa, puedo proponer el uso de una herramienta de monitoreo como Nagios, apuntando uno de sus complementos de monitoreo de registros al archivo catalina.out (o dondequiera que esté iniciando sesión) y buscar nuevas cadenas de error o lo que le interese. En nuestras bases de datos Oracle eso funciona perfectamente.