Marcio Cunha

Como limpar o cache do systemd journal e liberar disco no Linux

Aprenda a inspecionar e limpar o systemd journal no Linux. Descubra comandos práticos para recuperar espaço em disco lotado por logs excessivos de serviços.

Marcio Cunha•5 min
Também disponível em:EnglishEspañol
Resumo
  • O systemd journal armazena logs de sistema de forma centralizada e binária, crescendo indefinidamente se não houver poda.
  • O comando journalctl permite inspecionar o espaço total ocupado pelos arquivos de registro em disco em tempo real.
  • A limpeza pode ser feita limitando o tamanho máximo por tempo de retenção ou pelo volume total ocupado.
  • Manutenção preventiva evita que partições cheias travem o sistema operacional e serviços críticos.
  • Gerenciar o armazenamento de logs complementa outras rotinas de limpeza, como a limpeza de caches de containers Docker .

Por que o systemd journal consome tanto espaço em disco?

Quando um sistema operacional Linux roda por meses ou anos sem interrupções, os programas e serviços em segundo plano geram uma enorme quantidade de mensagens sobre o seu funcionamento. O systemd journal é o componente moderno responsável por coletar, indexar e armazenar todos esses registros de texto, chamados de logs. Na prática, ele funciona como uma caixa preta centralizada do computador, salvando cada erro, aviso ou atividade rotineira de drivers e aplicações. O problema é que, por padrão, esses arquivos podem crescer de forma silenciosa até esgotar todo o espaço livre da partição principal.

Diferente dos arquivos de log tradicionais em formato de texto puro que ficam na pasta /var/log, o systemd guarda tudo em arquivos binários compactados. Embora essa estrutura melhore a velocidade de busca e economize espaço inicialmente, ela faz com que o volume total de dados cresça sem que o administrador perceba facilmente. Quando o disco atinge cem por cento de ocupação, o sistema operacional começa a apresentar comportamentos erráticos, falhas ao abrir programas e travamentos repentinos. Por isso, saber inspecionar e esvaziar essa base de dados de forma controlada é uma habilidade fundamental para manter qualquer servidor ou estação de trabalho saudável e funcional.

Como verificar quanto espaço o journal está ocupando

Antes de aplicar qualquer comando para apagar dados, o primeiro passo racional é descobrir exatamente qual é o tamanho atual do diretório de logs. O systemd oferece uma ferramenta nativa chamada journalctl que facilita essa auditoria sem a necessidade de instalar programas externos. Na prática, essa verificação evita que você gaste tempo limpando o lugar errado ou tome medidas drásticas sem real necessidade.

Para consultar o uso atual de disco do journal, abra o terminal e execute o comando abaixo com permissões administrativas:

journalctl --disk-usage

O terminal exibirá uma linha informando o tamanho total ocupado pelos arquivos de log no disco rígido ou SSD. Se esse valor estiver na casa de dezenas ou centenas de gigabytes em um servidor modesto, é um sinal claro de que a retenção automática não foi configurada corretamente. Em alguns casos, diagnosticar esse tipo de consumo excessivo caminha lado a lado com a identificação de gargalos de I/O em discos no Linux, garantindo que o sistema não gaste ciclos de leitura e escrita gravando logs desnecessários.

Como limpar o journal por tempo ou tamanho

A forma mais segura e recomendada de liberar espaço não é apagar os arquivos manualmente com o comando rm, o que pode corromper o banco de dados interno do systemd, mas sim utilizar os parâmetros nativos de poda. O próprio utilitário journalctl possui comandos específicos para descartar registros antigos com base em critérios de tempo decorrido ou no limite máximo de espaço desejado.

Você pode optar por manter apenas os logs mais recentes usando a opção de tempo ou restringir o tamanho total do diretório. A execução desses comandos realiza a compactação e a remoção segura dos blocos antigos em segundo plano. Siga o procedimento abaixo para aplicar a limpeza:

  1. Abra o terminal do seu sistema Linux com privilégios de superusuário.
  2. Para manter apenas os logs gerados nas últimas duas semanas, execute o comando de corte por tempo:
    sudo journalctl --vacuum-time=2weeks
  3. Caso prefira limitar o espaço máximo total que o journal pode ocupar no disco para, por exemplo, quinhentos megabytes, execute:
    sudo journalctl --vacuum-size=500M

Esses comandos retornam no terminal quais arquivos foram apagados e quanto espaço em disco foi liberado imediatamente após a execução. Essa abordagem cirúrgica garante que os dados mais recentes continuem intactos para futuras auditorias de segurança ou solução de problemas, enquanto o excesso obsoleto é descartado de maneira definitiva.

Como configurar a retenção automática no arquivo de configuração

Executar limpezas manuais resolve o problema imediato de falta de espaço, mas obriga o administrador a repetir a tarefa periodicamente. Para automatizar esse processo e evitar que o disco volte a lotar no futuro, o ideal é ajustar os parâmetros permanentes no arquivo de configuração principal do systemd journal. Esse arquivo fica localizado no diretório de configuração do sistema e controla o comportamento padrão de armazenamento.

O arquivo responsável por essas diretrizes é o journald.conf, localizado na pasta /etc/systemd/. Abrindo esse arquivo com um editor de texto, você encontrará diversas linhas comentadas com o caractere cerquilha. Ao remover o comentário e alterar valores como SystemMaxUse ou MaxRetentionSec, você define limites rígidos que o sistema respeitará automaticamente durante a rotina de gravação dos logs.

Por exemplo, definir um limite máximo de uso em disco de um gigabyte e uma retenção máxima de um mês impede que qualquer serviço descontrolado consuma o armazenamento do servidor. Após editar e salvar o arquivo de configuração, é necessário reiniciar o serviço do journal para que as novas regras entrem em vigor imediatamente. Essa prática preventiva garante estabilidade a longo prazo e reduz drasticamente a necessidade de intervenções manuais de emergência. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como testar o circuito PWM da placa-mãe na bancada.

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

Manter o systemd journal sob controle é uma tarefa essencial na administração de sistemas Linux modernos. Como vimos, deixar que os registros de eventos cresçam sem limites compromete a estabilidade da máquina e pode causar falhas catastróficas por falta de espaço em disco. A utilização correta dos comandos de poda e a configuração de limites permanentes garantem um ambiente limpo, rápido e seguro.

Adotar uma rotina de monitoramento e manutenção preventiva poupa horas de trabalho em cenários de crise. Combinando essas boas práticas com o gerenciamento de outros componentes pesados do sistema, como a limpeza segura do cache de swap no terminal, você assegura que seus servidores operem sempre com desempenho máximo e recursos otimizados.