Rain Wiki · Linux

logrotate

O que o logrotate faz, como sua configuração em /etc/logrotate.conf e /etc/logrotate.d funciona e como testar uma regra com segurança.

Linux · Rain Wiki

logrotate é um utilitário do Linux que rotaciona, compacta e remove arquivos de log para que eles não ocupem todo o disco. Ele geralmente é executado uma vez por dia por um timer do systemd ou tarefa do cron e lê o /etc/logrotate.conf, além das regras por pacote em /etc/logrotate.d/.

Uma regra típica

Uma regra nomeia um ou mais arquivos de log e diretivas como daily ou weekly (frequência), rotate 7 (quantos arquivos antigos manter), compress (compacta arquivos antigos com gzip), missingok (sem erro se o arquivo estiver ausente), notifempty (pula logs vazios) e postrotate ... endscript (um comando para executar após a rotação, por exemplo, para reabrir o log).

copytruncate

Alguns programas continuam escrevendo no mesmo arquivo aberto. O copytruncate copia o log e então trunca o original em vez de movê-lo, para que o programa mantenha seu descritor de arquivo; algumas linhas escritas durante a cópia podem ser perdidas.

Testando

'logrotate -d /etc/logrotate.conf' é executado em modo de depuração e apenas imprime o que aconteceria. '-f' força uma rotação mesmo que não esteja no prazo.

Como adicionar e testar uma regra

  1. Crie /etc/logrotate.d/myapp com o caminho do log e as diretivas, por exemplo, weekly, rotate 4, compress, missingok, notifempty.
  2. Simulação: sudo logrotate -d /etc/logrotate.d/myapp
  3. Se a saída parecer correta, force uma rotação: sudo logrotate -f /etc/logrotate.d/myapp
  4. Verifique o resultado: ls -l no diretório de log.

Cuidados

  • Um padrão de caminho incorreto pode rotacionar ou excluir logs de outros programas.
  • Logs gerenciados pelo journal do systemd são limitados em journald.conf, não pelo logrotate.

Fontes

Última atualização: 2026-10-08

Artigos relacionados