Marcio Cunha

Como limpar o log do journalctl e recuperar espaço em disco

Aprenda a limpar o log do journalctl no Linux com comandos rápidos e seguros para recuperar gigabytes de espaço em disco em poucos segundos.

Marcio Cunha•6 min
Também disponível em:EnglishEspañol
Resumo
  • O journald armazena logs binários do sistema em disco que crescem sem controle padrão se não forem limitados.
  • Comandos simples de linha de comando permitem podar registros antigos por tamanho ou tempo de retenção.
  • O uso do utilitário ncdu ajuda a inspecionar o diretório /var/log/journal e identificar o consumo de espaço.
  • Ajustar o arquivo de configuração journald.conf evita que o problema de disco cheio ocorra novamente no futuro.
  • Manter a limpeza dos logs operacionais preserva a estabilidade do sistema e evita falhas de gravação por falta de espaço.

Por que o journalctl consome tanto espaço em disco no Linux?

Quem administra servidores ou estações de trabalho baseadas em distribuições Linux modernos frequentemente esbarra em um problema silencioso: o disco rígido vai perdendo capacidade de armazenamento de forma misteriosa. Na maioria das vezes, o culpado por essa perda repentina de espaço é o sistema de logs centralizado do sistema operacional, conhecido como systemd-journald. Na prática, esse serviço coleta mensagens do kernel, de aplicativos e de serviços em segundo plano, gravando tudo de forma contínua em arquivos binários compactados dentro da pasta /var/log/journal. Como esses registros acumulam-se indefinidamente por padrão, servidores que rodam aplicações verbosas ou que sofrem muitas tentativas de acesso maliciosas acabam consumindo dezenas de gigabytes apenas com dados históricos.

Antes de aplicar qualquer medida drástica de limpeza, é fundamental entender o tamanho atual desse consumo para mensurar o impacto da intervenção. Para isso, você pode utilizar o comando nativo do próprio journald, que exibe um resumo imediato do espaço ocupado em disco pelas pastas de log. Na prática, isso significa rodar uma instrução rápida no terminal que faz o cálculo automático de todos os arquivos armazenados. Se você perceber que o volume acumulado está crítico a ponto de comprometer o funcionamento do sistema, vale a pena conferir também outras frentes de limpeza, como quando explicamos como liberar espaço em disco no Linux com o ncdu para mapear arquivos pesados de forma visual e intuitiva.

Como verificar o tamanho atual dos logs do sistema

Para descobrir exatamente quanto espaço os registros do sistema estão consumindo no seu disco rígido, abra o terminal e execute o comando responsável por consultar o uso de armazenamento do journal. Esse comando lê os metadados dos arquivos binários e apresenta o valor total consolidado na tela, permitindo que você decida se a limpeza é urgente. Essa verificação é indispensável antes de executar qualquer rotina de exclusão, pois evita que você gaste tempo limpando logs quando o verdadeiro gargalo de armazenamento está em outro lugar, como no acúmulo de pacotes antigos que detalhamos no guia sobre como limpar o cache do Apt no Ubuntu e liberar disco rápido.

journalctl --disk-usage

Ao executar essa instrução, o terminal retornará uma linha informando o tamanho total ocupado, que pode variar de poucos megabytes em sistemas recém-instalados até dezenas ou centenas de gigabytes em servidores de produção negligenciados. Saber esse número exato é o primeiro passo para planejar a estratégia de retenção. Se o valor for alarmante, o próximo procedimento lógico consiste em aplicar filtros de remoção para apagar o excesso de dados sem corromper a estrutura do banco de dados de logs.

Procedimento prático para limpar logs por tamanho ou tempo

Quando o espaço em disco atinge níveis críticos, o administrador precisa recorrer a comandos de poda para eliminar registros antigos e recuperar a capacidade de armazenamento. O systemd oferece ferramentas nativas muito eficientes para apagar logs com base em critérios de tempo ou de volume máximo permitido. Na prática, você pode escolher se deseja manter apenas os registros das últimas semanas ou se prefere limitar o tamanho total que a pasta de logs pode ocupar. Abaixo está o procedimento passo a passo para realizar essa limpeza de forma segura no terminal:

  1. Abra o terminal com privilégios de administrador (root) para garantir permissão de escrita e exclusão nos diretórios protegidos do sistema.
  2. Execute o comando de limpeza para reter apenas os logs correspondentes ao período desejado, como por exemplo os últimos sete dias.
  3. Execute o comando complementar de poda por tamanho máximo para forçar o sistema a descartar arquivos antigos até atingir o limite de armazenamento estabelecido.

O comando para apagar todos os registros mais antigos que um determinado intervalo de tempo utiliza a flag --vacuum-time, enquanto a limpeza baseada em limite de tamanho utiliza a flag --vacuum-size. Veja a aplicação prática desses comandos nos blocos abaixo:

sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M

Na prática, o primeiro comando remove todos os arquivos de log gerados há mais de sete dias, enquanto o segundo restringe o armazenamento total a no máximo quinhentos megabytes, apagando os registros mais antigos até que essa meta seja atingida. Esses procedimentos devolvem imediatamente o fôlego ao sistema operacional e evitam travamentos decorrentes da falta de espaço na partição raiz. Caso o seu ambiente utilize containers, lembre-se de que o Docker também costuma acumular camadas órfãs que consomem muito disco, problema que pode ser resolvido aplicando as dicas do nosso artigo sobre como limpar o cache do Docker e recuperar espaço em disco.

Como configurar limites permanentes no journald.conf

Executar comandos manuais de limpeza resolve a emergência do momento, mas não impede que o problema retorne nas semanas seguintes conforme novos logs continuam sendo gerados. Para garantir uma operação sustentável a longo prazo, é necessário alterar o arquivo de configuração global do serviço de journal, chamado journald.conf. Na prática, esse arquivo dita as regras permanentes que o sistema operacional deve seguir para controlar o crescimento dos arquivos de log de forma autônoma, sem exigir intervenção humana constante.

Para realizar essa alteração definitiva, abra o arquivo de configuração localizado no diretório /etc/systemd/journald.conf utilizando um editor de texto com privilégios administrativos, como o nano. Nele, você encontrará diversas linhas comentadas com o caractere sustenido (#), que indicam os valores padrão de fábrica. O procedimento consiste em localizar as diretrizes de limite de tamanho e tempo, remover o comentário e definir os valores desejados. Veja abaixo o trecho típico que deve ser ajustado:

[Journal]
#Storage=auto
#Compress=yes
SystemMaxUse=1G
SystemKeepFree=500M
MaxRetention=1month

Nesta configuração prática, definimos que o journal poderá ocupar no máximo um gigabyte de espaço em disco (SystemMaxUse), exigindo que o sistema sempre mantenha pelo menos quinhentos megabytes livres na partição (SystemKeepFree), além de estipular que nenhum registro deve ser guardado por mais de um mês (MaxRetention). Após salvar o arquivo, é necessário reiniciar o serviço de journal para que as novas regras entrem em vigor imediatamente. Para isso, execute o comando de reinicialização do systemd-journald no terminal.

sudo systemctl restart systemd-journald

Considerações finais sobre a gestão de logs no Linux

Manter o sistema operacional limpo e com espaço em disco adequado é uma atribuição essencial para garantir a estabilidade de qualquer infraestrutura baseada em Linux. O acúmulo descontrolado de logs gerados pelo systemd-journald representa uma armadilha comum que afeta desde servidores de grande porte até pequenas máquinas de desenvolvimento. Ao dominar os comandos de poda e configurar corretamente os limites de retenção no arquivo de configuração, você elimina o risco de interrupções repentinas causadas por partições cheias.

Adotar uma rotina preventiva de monitoramento e limpeza evita surpresas desagradáveis e assegura que o hardware opere sempre dentro de margens seguras de desempenho. Combinar essas boas práticas de gestão de logs com a limpeza periódica de caches de pacotes e containers garante um ambiente Linux robusto, previsível e altamente confiável para rodar qualquer tipo de aplicação corporativa ou pessoal.