Contexto
Sou obrigado a usar um aplicativo java mal projetado que registra MUITAS informações enquanto está em execução. Sob uso padrão, ele criará 100s de MB de logs por hora.
Não preciso de logs históricos e atualmente parece que o utilitário logrotate não consegue acompanhá-lo, pois não é executado com frequência suficiente. O aplicativo é de código fechado e gira seus próprios logs em cerca de 36 MB.
Minha distribuição Linux é RHEL7.
Pergunta
Eu gostaria de reduzir o espaço desperdiçado comprimindo e girando os logs.
- Como o aplicativo já divide os logs em novos arquivos, é possível compactar automaticamente os arquivos recém-criados em um diretório?
- É possível excluir automaticamente todos os arquivos no formato assessor-cli.X.log onde X é um dígito maior que... digamos 5 (ou seja, mantenha apenas os 5 logs mais recentes).
Aqui está minha tentativa de um arquivo logrotate:
# cat /etc/logrotate.d/cis_assessor
/usr/share/foreman-proxy/Ansible/CIS/audit/Assessor-CLI-4.0.2/logs/assessor-cli.log {
missingok
notifempty
compress
rotate 5
size 30M
Esse trabalho de logrotate precisaria capturar o log entre 30 MB e 36 MB para realmente entrar em vigor, o que pode levar apenas um período de 10 segundos. É por isso que estou perguntando sobre o caminho manual de compactar e excluir arquivos sem logrotate.