logrotate
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/.
1Uma 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).
2copytruncate
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.
3Testando
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
- Crie
/etc/logrotate.d/myappcom o caminho do log e as diretivas, por exemplo, weekly, rotate 4, compress, missingok, notifempty. - Simulação:
sudo logrotate -d /etc/logrotate.d/myapp - Se a saída parecer correta, force uma rotação:
sudo logrotate -f /etc/logrotate.d/myapp - 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.
Artigos relacionados
- journalctl e o journal do systemdComo ler logs com journalctl, verificar quanto espaço o journal utiliza e reduzi-lo com segurança usando as opções --vacuum.
- Uso de disco com du e ncduComo encontrar o que está ocupando o disco no Linux com o du e o interativo ncdu, usando opções que permanecem em um único sistema de arquivos.
- cron e crontabComo o cron executa tarefas agendadas, os cinco campos de tempo do crontab, onde ficam os arquivos de sistema do cron e como os timers do systemd se comparam.
Fontes
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Última revisão: