Logrotate não excluindo logs mais antigos

1

Estou usando a configuração a seguir para arquivar e excluir logs:

/path/to/logs/*.log {
    daily
    missingok
    compress
    rotate 4
    nodateext
    nocreate
    maxage 14

}

A localização dos meus registos tem registos semelhantes a este:

-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 a diretiva maxage deve fazer).

Alguém tem alguma idéia de por que isso está acontecendo ou o que devo mudar na configuração do logrotate?

Obrigado!

    
por dinclaw 27.09.2016 / 08:02

1 resposta

7

Da página de manual do logrotate:

maxage count

Remove rotated logs older than days. The age is only checked if the logfile is to be rotated.

audit-2016.09.26.log foi criado apenas uma vez e nunca mais. Então, nunca mais será girado novamente.

Na verdade, seus arquivos de registro de auditoria já estão girados . Parece que você deseja compactá-los e remover arquivos antigos. Eu não sei se isso é possível com o logrotate. Você pode adicionar um script postrotado à sua regra original, como:

       postrotate
           find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
       endscript
    
por 27.09.2016 / 08:31

Tags