# 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.

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

- [logrotate(8)](https://man7.org/linux/man-pages/man8/logrotate.8.html)
- [logrotate(8) (Debian)](https://manpages.debian.org/bookworm/logrotate/logrotate.8.en.html)

Última atualização: 2026-10-08
URL: https://raincleaner.eu/pt/wiki/linux/logrotate
