Eu tenho uma pasta de log em under /var/USER/mylogs
e diariamente arquivos de log no formato "DATE-mylogile.log"
. DATA é formatada como "%d-%m-%Y"
.
Então, na minha pasta, tenho, por exemplo, estes arquivos de log:
12-01-2024-mylogfile.log
13-01-2024-mylogfile.log
14.01-2024-mylogfile.log
...
Agora quero usar o logrotate para girar os logs. Minha configuração de teste fica assim:
/var/USER/mylogs/*.log {
weekly
rotate 4
compress
missingok
dateext
dateformat -%d-%m-%Y
}
Mas quando o logrotate é executado, ele cria um gz-Archive para cada arquivo de log como:
12.01-2024-mylogfile.log-12-03-2024.gz
13.01-2024-mylogfile.log-13-03-2024.gz
14.01-2024-mylogfile.log-14-03-2024.gz
Mas eu quero que o logrotate crie semanalmente um gz-Archive que inclua todos os arquivos de log únicos da semana, para que haja apenas um gz-Archive como:
mylogfile.log-14-03-2024.gz
Mas aí estou preso - então é possível e como posso fazer isso?
Depois de um pouco mais de pesquisa, encontrei um post serverfault onde a resposta é dada.
Portanto, não é possível girar logs com hora/data no nome do arquivo. logrotate foi projetado para usar um arquivo de log que é sempre o mesmo e o aplicativo grava nesse único arquivo de log.
Resposta da postagem vinculada ao serverfault :