usando logrorate con un directorio de registro complejo

usando logrorate con un directorio de registro complejo

Una aplicación tiene un directorio de registro en el que se crea una gran cantidad de resultados de registro. La estructura de archivos en este directorio de registro se parece a esto:

localhost:/var/log/myapp # ls

appClient22334.a    appClient22336.a    appClient22338.a
appClient22334.b    appClient22336.b    appClient22338.b    
appClient22334.c    appClient22336.c    appClient22338.c
appClient22335.a    appClient22337.a    appClient22339.a
appClient22335.b    appClient22337.b    appClient22339.b
appClient22335.c    appClient22337.c    appClient22339.c

Cada día, la aplicación genera cientos de esos archivos, que deben almacenarse. Los números aumentan.

Para la mayoría de los propósitos, uso logrotate para almacenar y comprimir archivos de registro diariamente, pero en este caso no veo cómo se podría hacer esto.

La solución ideal sería tener algo como

appClient.20120324.gzip
appClient.20120325.gzip
appClient.20120326.gzip

¿Puede alguno de ustedes orientarme en la dirección correcta, si esto se puede hacer mientras se usa logrotate (¿quizás una forma inteligente de usarlo prerotate?), o si es más rápido/fácil escribir un script bash específico.

Respuesta1

Para simplificar las cosas, ejecutaría un trabajo cron diario que concatena los archivos de registro de ayer en un solo archivo (por ejemplo, ayer.log) y, si tiene éxito, los elimina, y luego ejecuta logrotate para (re)nombrar y comprimir ese archivo. Es posible que puedas obligar a logrotate a realizar toda la tarea usando, sharedscriptspero no lo creo y no perdería el tiempo tratando de resolverlo.

información relacionada