Bat comprimir y eliminar logs apache tomcat 6

Tengo que rotar los logs del apache tomcat 6 en servidores windows server 2008, y tengo el siguiente problema:

1) No estoy seguro como se configura el SERVER.XML para que rote los logs. He modificado el fichero pero no estoy completamente seguro que esto funcione. Esto es lo que he añadido al final del archivo:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b"
rotatable="true"
fileDateFormat="yyyy-MM-dd"/>

2) Me gustaría poder hacer un bat que comprima los logs rotados de mas de 5 días (por ejemplo), y después de comprimir dichos logs, los elimine (ya que ocupan mucho espacio en el servidor) el nombre del archivo comprimido debe ser la fecha del sistema (esto si que lo hace bien), os pongo el bat que he podido hacer:

set anio=%date:~6,4%
set mes=%date:~3,2%
set dia=%date:~0,2%

net stop Tomcat6

"C:\Program Files\WinRAR\WinRAR.exe" A "D:\logs\hefes\COMPRIMIDOS_%anio%%mes%%dia%.RAR" D:\logs\hefes*.log -to5d

Forfiles /p D:\logs\hefes /m *.log /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" A "D:\tomcat\COMPRIMIDOS_%anio%%mes%%dia%.RAR" D:\tomcat\*.log -to5d

Forfiles /p D:\tomcat /m *.log /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" A "D:\tomcat\logs\COMPRIMIDOS_%anio%%mes%%dia%.RAR" D:\tomcat\logs\*.log -to5d

Forfiles /p D:\tomcat\logs /m *.log /d -5 /c "cmd /c del /q @path"

net start Tomcat6

Espero que me podáis echar una mano, que seguro que si por que sois unos cracks!

Un fuerte abrazo a [email protected]!!

1

1 Respuesta

75.675 pts. Experiencia en manejo de bases de datos Oracle,...

No tengo muy claro si necesitas ayuda porque lo que nos indicas no te funciona o simplemente lo comentas por si alguien detecta algún problema en tu planteamiento. Pero como nadie te ha dicho nada voy a decir yo algo.

Respecto al primer punto poco puedo decir. No soy usuario de Tomcat y por la información que he visto en https://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve la modificación realizada al server.xml parece correcta.

Respecto al segundo punto (descontando la forma de parar y arrancar el tomcat, que supongo que serán correctas) tampoco veo inconsistencias y he hecho algunas pruebecillas que parecen demostrar que funciona correctamente. Pero yo invocaría el RAR.exe en vez del WinRAR.exe, porque es más orientado al modo comando y te evitas que se presente la ventana de WinRAR con su correspondiente espera a que pulses un botón. Si usar el RAR.exe el bat será autónomo.

Si en realidad estás teniendo algún problema con este esquema de trabajo dínoslo a ver si podemos ayudarte.

¡Gracias gggirald,! 

Es que es un poco raro lo que me pasa, a veces me falla y me da error como si tuviera algún fichero abierto que no puede comprimir, voy a hacer lo que me dices de invocar el RAR.exe en vez del WinRAR.exe a ver si ya no me da fallo. La pregunta la hice a ver si estaba bien la configuración de rotar los logs en SERVER.XML y si el BAT estaba correctamente desarrollado ya que no soy programador y no estaba seguro.

Voy a probar lo que me dices de invocar y os digo!

Muchas gracias, un saludo!

Si se intenta incluir en el comprimido un archivo que se está usando en ese momento creo que podría darte el error que comentas pero parece que eso no tiene mucho sentido si son logs de fechas pasadas y, si la rotación funciona, deberían estar "abandonados".

¡Muchas Gracias! 

Estoy probando ahora a lanzar el script en 3 máquinas, cuando acabe os digo los resultados.

Un abrazo

Buenos días:

Acabo de probar y en unas máquinas me funciona la compresión (con la misma configuración) y en otras no, el archivo que me da fallo (como si estuviera abierto por otra aplicación) es: 

RE_CL_CFINDSCU_1709.log

No se porque en una máquina no me da fallo y en otra si...

Espero me puedan ayudar porque ya no se que mirar...

Muchas gracias!!

Un saludo

Alberto

A ver la fecha del archivo. Si es anterior a la fecha actual supongo que habría que pensar en tema de permisos. Si la fecha de última actualización es la actual imagino que será porque la configuración de los log no es la misma en todas las máquinas. En particular habría que comparar la de una máquina de las que no dan problema con la de una de las que sí los dan.

Sigue contándonos lo que ocurra.

¡Muchas Gracias! 

El script lo lanzo en la cuenta de Administrador, por lo que tema de permisos no creo que pueda ser, no obstante lo revisaré. La configuración es idéntica en todas las máquinas, eso es lo que me resulta extraño. He buscado información sobre ese log y no encuentro nada... Ya no se que hacer.

Muchas gracias, por preocuparte y por la ayuda que me estás prestando.

Alberto

Yo tampoco he visto nada sobre ese log. ¿No puedes excluirlo del comprimido? Si no sabes para que es de poco te va a servir. Si algún día lo averiguas te lo puedes replantear.

Me sorprende un poco el 1709. Si se trata de aamm (año/mes) se trataría de un log mensual y eso explicaría que esté en uso (aunque no explicaría que no esté en uso en otras máquinas). El hecho de que deje o no incluirlo en el comprimido, ¿depende del momento? Es decir, ¿siempre lo permite en unas máquinas y nunca en otras, o no es siempre así?

En todo caso yo probaría a intentar hacer cosas no agresivas como copiar, abrir con Notepad, con esos archivos en los dos tipos de situaciones. De paso le echas un vistazo al contenido a ver si nos da una pista.

¡Muchas Gracias! 

Este es el contenido del log:

CL|_CFINDSCU|TOExaminationAvailabilityDataList.consultExaminationAvailability|DESCONOCIDO|20170905 15:24:49|DESCONOCIDO|Read timed out|1|CRITICAL||N
CL|_CFINDSCU|TOExaminationAvailabilityDataList.consultExaminationAvailability|DESCONOCIDO|20170905 15:25:03|DESCONOCIDO|Read timed out|1|CRITICAL||N
CL|_CFINDSCU|TOExaminationAvailabilityDataList.consultExaminationAvailability|DESCONOCIDO|20170905 15:25:14|DESCONOCIDO|Read timed out|1|CRITICAL||N

Es que lo curioso es que este fichero existe en todas máquinas con el mismo contenido y en unas da problemas y en otras no... No le encuentro mucho sentido, voy a probar a excluir este fichero y veremos a ver si se soluciona el problema.

Muchas gracias, de nuevo

Alberto

Este log, ¿es de tomcat o de algún otro programa? Tal vez el programa que lo use lo tome en exclusiva en unas máquinas y en otras no lo haga así (en exclusiva). Porque parece claro que es un log mensual, no sujeto a rotaciones.

¡Muchas Gracias! 

Seguro no lo sé, lo que si es seguro que en las máquinas están instaladas las mismas aplicaciones, con la misma configuración. Estoy haciendo pruebas excluyendo el log que me da problemas y parece que funciona correctamente, lo curioso es que lo ejecuto con la sesión iniciada y me funciona sin problemas, pero si lo meto en una tarea programada en algunas máquinas me da fallo y en otras no... Sigo haciendo pruebas y te voy diciendo.

Muchas gracias, de nuevo

Alberto

Buenos días a [email protected], en especial a gggirald:

Ya he encontrado solución al problema, la rotación estaba bien configurada, lo que he hecho ha sido retocar el script y lo he dejado de esta manera:


set anio=%date:~6,4%
set mes=%date:~3,2%
set dia=%date:~0,2%

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\logs\LOGS_COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\logs*.log -to5d

Forfiles /p E:\logs /m *.log /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\logs\TXT_COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\logs*.txt -to5d

Forfiles /p E:\logs /m *.txt /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\tomcat7\COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\tomcat7\*.log -to5d

Forfiles /p E:\tomcat7 /m *.log /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\tomcat7\TXT_COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\tomcat7\*.txt -to5d

Forfiles /p E:\tomcat7 /m *.txt /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\tomcat7\logs\COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\tomcat7\logs\*.log -to5d

Forfiles /p E:\tomcat7\logs /m *.log /d -5 /c "cmd /c del /q @path"

"C:\Program Files\WinRAR\WinRAR.exe" a -r -x*RE_CL_CFINDSCU* "E:\tomcat7\logs\TXT_COMPRIMIDOS_%anio%%mes%%dia%.RAR" E:\tomcat7\logs\*.txt -to5d

Forfiles /p E:\tomcat7\logs /m *.txt /d -5 /c "cmd /c del /q @path"

He añadido la instrucción que dice: a -r -x*RE_CL_CFINDSCU* para omitir el archivo que me estaba dando problemas y he configurado el servidor para que ejecute la tarea como administrador y con la configuración del sistema operativo que tengo en las máquinas (windows 2008 server R2), con esto funciona perfectamente. Damos por resuelto este tema!

Muchas gracias por toda la ayuda que me has prestado.

Un fuerte abrazo

Alberto

Muy bien. Me alegro mucho de haberte servido de ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas