Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

984
Vistas
logrotate: eliminar registros de tomcat/jboss anteriores a n días

No he encontrado una solución para purgar registros antiguos de tomcat o jboss o cualquier otro registro con marca de tiempo: catalog.log. /servidor.log. . Básicamente, jboss rota estos registros como: server.log, server.log.20131201, server.log.20131203 y así sucesivamente.

¿Hay alguna manera de que pueda usar logrotate para eliminar registros de más de n días? No quiero usar find inside postrotate o modificar las propiedades de registro de jboss/tomcat. Solo quiero saber si logrotate realmente puede lograr esto por sí solo. Sé que no es muy productivo, pero tengo un problema en el que necesito una respuesta.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si no quieres usar find inside postrotate , no, no puedes.

logrotate trata cada instancia de server.log rotada por Tomcat/JBoss como un archivo diferente y, dado que son únicas, logrotate las rotará solo una vez. maxage , la directiva que elimina los registros rotados con más de n días de antigüedad, solo se verifica si el archivo de registro debe rotarse, por lo que maxage solo se ejecuta una vez y no puede realizar un seguimiento de la antigüedad del archivo.

Sin embargo, si cambia de opinión sobre el uso de find , logrotate puede ayudarlo a simplificar la administración de los archivos de registro creados por Tomcat y JBoss. Lo uso para comprimir y eliminar archivos antiguos con un archivo de configuración como este:

 /path/to/logs/server.log.????-??-?? { compress compresscmd /usr/bin/bzip2 nocreate nodateext ifempty missingok rotate 1 size 0 start 0 lastaction # Remove rotated files older than 180 days find /path/to/logs -name 'server.log.????-??-??.0.bz2' -mtime +180 -exec rm {} \; endscript }

donde:

  • rotate 1 y compress renombrar y comprimir, digamos, server.log.20131201 a server.log.20131201.0.bz2 . El 0 entre la marca de tiempo y la extensión .bz2 proviene del start 0 .
  • size 0 se asegura de que los archivos siempre se renombran y comprimen.
  • El bloque lastaction elimina los archivos rotados con más de 180 días.
over 4 years ago · Santiago Trujillo Denunciar

0

logrotate puede administrar sus registros girándolos y eventualmente manteniendo un número limitado de registros rotados. Pero AFAIK solo puede hacerlo para los registros que administra directamente. Si sus registros ya fueron rotados por algún otro agente (es decir, el mismo Tomcat), logrotate no puede hacer nada, simplemente porque no sabe nada sobre la rotación realizada por otra persona.

Entonces, la respuesta es no, no puede usar logrotate para eliminar registros que no administra por sí mismo (y creo que ni siquiera tiene la intención de hacer algo así).

over 4 years ago · Santiago Trujillo Denunciar

0

Puede poner el script en /etc/cron.daily. Por ejemplo:

gato /etc/cron.daily/tomcat-rotate-logs

 #!/bin/sh # erasing tomcat logs older then 7 days for x in $(find /var/log/tomcat/ -type f -mtime +7); do rm "$x"; logger -t TOMCAT-ROTATE-LOGS "Erasing $x [done]"; done

o crea una configuración logrotate. Por ejemplo: gato /etc/logrotate.d/tomcat

 /var/log/tomcat/*.log { su tomcat tomcat copytruncate daily rotate 6 compress missingok }

"su tomcat tomcat": significa evitar el error logrotate en permisos incorrectos

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda