Estou usando a seguinte configuração para arquivar e excluir logs:
/path/to/logs/*.log {
daily
missingok
compress
rotate 4
nodateext
nocreate
maxage 14
}
Meu local de registros tem registros parecidos com estes:
-rwxrwxrwx 1 nobody nobody 21635 Sep 26 13:09 audit-2016.09.26.log
Que são então girados e compactados para ficar assim:
-rwxrwxrwx 1 nobody nobody 180485 Sep 10 03:41 audit-2016.09.26.log.1.gz
O problema que estou tendo é que, depois de arquivá-los todas as noites, os logs não são excluídos após 14 dias (como deveria fazer a diretiva maxage).
Alguém tem alguma ideia de por que isso está acontecendo ou o que devo mudar na minha configuração do logrotate?
Obrigado!
Responder1
Na página de manual do logrotate:
contagem máxima
Remova logs rotacionados com mais de dias.A idade só é verificada se o arquivo de log for girado.
audit-2016.09.26.log
só foi criado uma vez e nunca mais. Portanto, nunca mais será girado.
Na verdade, seus arquivos de log de auditoriajá estão girados. Parece que você deseja apenas compactá-los e remover arquivos antigos. Não sei se isso é possível com logrotate. Você pode adicionar um script postrotate à sua regra original, como:
postrotate
find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
endscript