Excluir arquivos com logrotate

13

É possível APENAS excluir os arquivos de log em um diretório usando logrotate sem realmente girá-los? Temos um aplicativo que gera logs no seguinte formato: app.log.DD_MM_YYYY. Não tenho êxito com o logrotate com a seguinte configuração:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

O log rotate pode fazer isso ou devo apenas escrever um script e colocá-lo no cron?

Melhor, -Iuliano

Iulian
fonte
Se você não precisa desses logs, por que não desativar o recurso de registro no seu aplicativo?
Deeh
1
Sinto muito, mas não posso contar isso como resposta Deeh. Para alimentar sua curiosidade, precisamos desses logs para operações diferentes, como depuração, apenas não queremos mantê-los lá para apodrecer.
Iulian

Respostas:

16

Nesse caso, você pode querer usar o póstrotado. No exemplo abaixo, o postrotate excluirá os arquivos mais antigos um dia após a rotação dos logs, fique à vontade para modificá-lo para atender às suas necessidades.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
Deeh
fonte
3

O objetivo do logrotate é manter um número personalizado de arquivos de log em um intervalo de tempo personalizado. Eu usaria o cron para sua tarefa. Saiba mais sobre o que você pode fazer com o logrotate aqui: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Alex
fonte
2
Não poste respostas somente para links para evitar a podridão do link. Em vez disso, adicione as informações mais relevantes do link à sua resposta ou, em alternativa, publique o link como um comentário em vez de uma resposta. Consulte este artigo da Central de Ajuda para obter mais informações.
Sven