usando logrorate com um diretório de log complexo

2

Um aplicativo possui um diretório de log no qual uma grande quantidade de saídas de log é criada. A estrutura do arquivo neste diretório de log é algo como isto:

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

Todos os dias, o aplicativo gera centenas desses arquivos, que devem ser armazenados. Os números aumentam.

Para a maioria das finalidades, uso o logrotate para armazenar e compactar arquivos de log diariamente, mas neste caso não consigo ver como isso pode ser feito.

A solução ideal seria ter algo como

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

Algum de vocês pode me empurrar para a direção certa, se isso pode ser feito usando logrotate (talvez uma maneira inteligente de usar prerotate ?), ou se é mais rápido / fácil escrever um script bash específico? / p>     

por Bjoern 28.03.2012 / 08:49

1 resposta

1

No interesse de manter as coisas simples, eu executei uma tarefa cron diária que concatena os arquivos de log de ontem em um arquivo (por exemplo, yesterday.log) e, no sucesso, os exclui e, em seguida, executa logrotate para (re) name e compress esse arquivo. Você pode ser capaz de forçar o logrotate a fazer toda a tarefa usando sharedscripts , mas eu não penso assim e eu não perderia tempo tentando descobrir isso.

    
por 26.04.2012 / 12:50