Eu tenho um monte de aplicativos em uma caixa CentOS 6.3, que gera logs diários (arquivos de texto com um conteúdo muito semelhante) neste sentido:
/data/logs/app/my-2014-06-29.log
/data/yet_another_app/logs/catalina.20140629
/data/in_fact/there_are/around_500_such_paths/2014-06-29-1.log
Eu preciso manter 5 anos desses registros.
Eu atualmente os trato de uma forma tradicional Unix, apenas comprimindo-os no lugar (como .log.bz2
), mas estou insatisfeito por eles ainda ocuparem muito espaço. Eu sinto que eu poderia economizar muito espaço, mas compactando-os e, em seguida, comprimir (pense em um gigante .zip que contém um ano inteiro de logs).
Requisitos:
RHEL kosher
Não "compile a partir da fonte", por favor. Se não é maduro o suficiente para ser distribuído em um .rpm, então não é para mim.
grep
O arquivo deve permitir um grep recursivo (como grep -rli
):
grep_my_zip -rli pattern /this/and/that/wildcards/2014-06-*
O arquivo não deve descomprimir tudo ao grep, apenas os arquivos que correspondem a um curinga.
acrescentar
A cada semana, coloco meus arquivos no arquivo mesmo e os excluo do sistema de arquivos:
append_and_remove $( find /this/and/that -name '*.log' -type f -mtime +31 ) # weekly log cleaning job
Este não é o arquivo semanal, quero anexar a um único grande arquivo anual a cada semana.
Acesso ao MS Windows
O Archive, embora operado principalmente no CentOS Linux, também deve permitir a recuperação de um único arquivo no Windows para fins de emergência (portanto, um sistema de arquivos no estilo squashfs não é uma opção viável).
Coisas opcionais (um plus, mas não necessário)
- append deve ter espaço eficiente - considere que os arquivos de log anteriores são muito semelhantes aos arquivos de log atuais
- integração logrotate para o trabalho semanal
- grep_my_zip que funciona no Windows
- o arquivo também pode ser atualizável (ou seja, gravável), não apenas acrescentável
Originalmente publicado on este lamentável irmão