Existe uma maneira de fazer isso?
Existe uma maneira de fazer isso?
Respostas:
No seu logrotate.conf (ou no arquivo logrotate.d equivalente), altere a linha que diz "
rotate 10
(seu número pode ser diferente) para um número maior. Isso diz para manter muitos dias de logs. Você pode fazer o 36500, que duraria 100 anos.
Eu tenho procurado por isso para fazer a rotação dos backups do meu banco de dados diariamente, semanalmente e mensalmente; então eu giro o arquivo diariamente, mas o mantenho para fazer a rotação semanal e o mesmo para a rotação anual.
Use a opção de cópia. Do manual:
copy
copiar Faça uma cópia do arquivo de log, mas não altere o original. Essa opção pode ser usada, por exemplo, para fazer uma captura instantânea do arquivo de log atual ou quando algum outro utilitário precisar truncar ou analisar o arquivo. Quando essa opção é usada, a opção de criação não terá efeito, pois o arquivo de log antigo permanece no local.
Deixando de lado o ponto em que a rotação envolve exclusão ... ;-)
Parece que você pode simplesmente adicionar a palavra 'copiar' ao arquivo apropriado (provavelmente em /etc/logrotate.d). Por exemplo, um script de logrotate do apache2 ficaria assim:
/var/log/apache2/*.log { semanal missingok rodar 52 comprimir delaycompress notifempty cópia de sharedscripts postrotado if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; então /etc/init.d/apache2 reload> / dev / null fi final }
Tente isso e veja se faz o que você deseja.