Gerador de Configuração Linux Logrotate (Retenção e Compressão)
SysAdmin & DevOps

Gerador de Configuração Linux Logrotate (Retenção e Compressão)

Gere arquivos de configuração para /etc/logrotate.d/ prontos para produção com rotação diária/semanal, compactação gzip, dateext, limites de tamanho e scripts postrotate.

Privacidade 100% no cliente
Zero transmissão ao servidor
Predefinições:
Parâmetros e Diretivas do Logrotate
Arquivo de destino e localização/etc/logrotate.d/nginx
Frequência de rotação e limites de retençãoMantém 14 arquivos rotacionados
Compression & Timestamping (dateext)~85% de redução de espaço
Permissões de arquivo e segurança de processoscopytruncate vs create
Reload Signals & Scripts (postrotate)
Executa após a rotação
Executa antes da rotação
/var/log/nginx/*.log {
    daily
    rotate 14
    maxage 30
    missingok
    notifempty
    compress
    delaycompress
    dateext
    dateformat -%Y%m%d
    dateyesterday
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 $(cat /var/run/nginx.pid)
    endscript
}
Rotação e Frequência
DAILY (14 copies)

Retém até as gerações especificadas antes do descarte automatizado.

Compressão e Disco
Gzip (delaycompress)

Estimated ~85% disk storage savings with background gzip.

Permissões e Ciclo
create 0640 www-data

Atomic file rotation with new file recreation and custom permissions.

100% Processamento no Cliente

Nenhum dado é enviado para a nuvem. Caminhos de log e scripts de postrotate operam estritamente na memória do seu navegador.

Diretivas Completas do Logrotate

Suporte total a copytruncate, delaycompress, formatação dateext, limites de tamanho por arquivo, sharedscripts e diretiva su.

Validação Pronta para Produção

Gere arquivos de configuração para /etc/logrotate.d/, comandos de teste com 'logrotate -d' e scripts de instalação automatizados.

Referência técnica e guia de arquitetura

Gerador de Configuração do Linux Logrotate (Retenção e Compactação) — Guia de referência

Gere arquivos de configuração para /etc/logrotate.d/ prontos para produção com rotação diária/semanal, compactação gzip, dateext, limites de tamanho e scripts postrotate.

Parâmetros principais e controles

rotateDiretiva

Define o número de arquivos rotacionados retidos antes que os registros mais antigos sejam descartados.

Padrão: 4
frequencyDiretiva

Especifica a frequência temporal da rotação: daily (diária), weekly (semanal), monthly (mensal) ou yearly (anual).

Padrão: weekly
compressDiretiva

Habilita a compactação gzip dos logs rotacionados para economizar espaço de armazenamento em disco.

Padrão: compress
delaycompressDiretiva

Adia a compactação do log rotacionado mais recente até o próximo ciclo, prevenindo conflitos com escritas em andamento.

Padrão: delaycompress
createDiretiva

Define permissões (modo octal), proprietário e grupo ao recriar o arquivo ativo imediatamente após a rotação.

Padrão: 0640 root adm
copytruncateDiretiva

Copia o arquivo de log ativo e trunca o original para zero bytes no próprio local (útil para daemons que mantêm descritores abertos).

Padrão: desativado
postrotateBloco

Comandos shell executados após a rotação dos arquivos de log, frequentemente utilizados para recarregar daemons (ex.: systemctl reload).

Padrão: opcional

Dicas profissionais e melhores práticas

Serviços como Nginx ou PostgreSQL

Serviços como Nginx ou PostgreSQL continuam gravando em descritores abertos até receberem um sinal de recarga. O uso de delaycompress impede a compactação incorreta enquanto processos gravam dados.

Ao monitorar múltiplos logs com

Ao monitorar múltiplos logs com caracteres curinga (/var/log/nginx/*.log), omitir sharedscripts faz o script postrotate disparar uma vez para cada arquivo individual, sobrecarregando o sistema.

Valide suas configurações executando

Valide suas configurações executando 'logrotate -d /etc/logrotate.d/myapp' antes de colocá-las em produção. O modo -d analisa a sintaxe e exibe as ações previstas sem modificar o disco.

Existe um pequeno intervalo entre a

Existe um pequeno intervalo entre a cópia do log e o truncamento no qual dados recém-chegados podem ser perdidos. Prefira recarregar serviços via sinais (USR1/SIGHUP) quando suportado.

Problemas comuns e solução de problemas

Erro 'error: skipping ... parent directory has insecure permissions'

O logrotate interrompe a execução se o arquivo de configuração ou os diretórios tiverem permissões de escrita para grupos ou outros. Execute 'chmod 0644 /etc/logrotate.d/myapp' e ajuste as pastas para 0755 ou 0750.

A aplicação continua gravando no arquivo rotacionado .1 em vez do novo log

No Linux, operações de escrita ocorrem em inodes abertos e não no caminho do arquivo. Configure um bloco postrotate com 'systemctl reload <serviço>' ou utilize a diretiva copytruncate.

Rotações ocorrem fora do horário esperado ou com muita frequência

Verifique se parâmetros como 'size' ou 'maxsize' foram configurados conjuntamente com intervalos de tempo e inspecione o arquivo /var/lib/logrotate/status para verificar os registros de execução.

Perguntas frequentes (FAQ)

Onde os arquivos de configuração do logrotate devem ser salvos no Linux?▼

As definições de cada serviço devem ser armazenadas dentro do diretório /etc/logrotate.d/ (por exemplo, /etc/logrotate.d/myapp). O arquivo principal /etc/logrotate.conf inclui esse diretório automaticamente.

Qual é a diferença técnica entre create e copytruncate?▼

A diretiva 'create' renomeia o log existente e cria um arquivo vazio, exigindo que o serviço reabra o descritor de arquivo via sinal. A diretiva 'copytruncate' copia o log e reduz o tamanho do original para zero no local, sem exigir reinicialização do daemon.

Quais são as vantagens da diretiva dateext sobre a numeração sequencial?▼

A opção 'dateext' inclui a data (formato YYYYMMDD) no nome dos arquivos arquivados em vez de números rotativos (.1, .2.gz). Isso impede que arquivos antigos sejam renomeados a cada ciclo, simplificando coletores como Fluentd e Elastic Agent.

Como forçar a execução imediata do logrotate para testes ou emergências de disco?▼

Execute o comando 'logrotate -vf /etc/logrotate.d/myapp'. O parâmetro -v detalha cada etapa no terminal e -f (force) executa a rotação imediatamente, ignorando limitações de tempo ou tamanho.

Por que a diretiva su é necessária em sistemas Linux modernos?▼

Se a pasta de logs pertencer a um usuário comum (como www-data ou mysql), o logrotate exige a declaração 'su <usuário> <grupo>' para abrir mão de privilégios de root, prevenindo vulnerabilidades de escalonamento via links simbólicos.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de Configuração YAML do Ubuntu NetplanDesenvolvimento

Gere configurações YAML do Netplan para Ubuntu 20.04/22.04/24.04: IPs estáticos, DHCP, servidores DNS, rotas de gateway, bridges e bonds.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Python SQLAlchemy 2.0 a partir de SQL DDLDesenvolvimento

Converta instruções SQL CREATE TABLE em modelos fortemente tipados do Python SQLAlchemy 2.0 DeclarativeBase com anotações modernas Mapped e mapped_column.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Struct GORM em Golang a partir de DDL SQLDesenvolvimento

Converta esquemas SQL CREATE TABLE em definições de struct em Golang com tags GORM, tags JSON e correspondência tipada de tipos Go.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Modelos Sequelize TypeScript a partir de SQL DDLDesenvolvimento

Referência técnica completa para converter instruções SQL CREATE TABLE DDL em modelos Sequelize TypeScript fortemente tipados, definições DataTypes, atributos CreationOptional e chamadas Model.init.

Abrir ferramenta→
Json To Elixir Ecto Referência para DesenvolvedoresDesenvolvimento

Guia técnico e de configuração arquitetural para compilar payloads JSON brutos em esquemas Elixir Ecto de produção, migrações, changesets e typespecs do Dialyzer.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Case Classes JSON para Scala 3 e 2Desenvolvimento

Converta payloads JSON em case classes tipadas para Scala com suporte a codecs automáticos do Circe, Play JSON e zio-json.

Abrir ferramenta→