Ficando sem espaço em disco no Linux? Verifique seus registros!

Principais conclusões

  • Os logs do sistema Linux podem ocupar uma quantidade significativa de espaço em disco.
  • Seu sistema normalmente compactará arquivos de log mais antigos para economizar espaço em disco.
  • Você pode usar o comando journalctl ou tail -f para visualizar logs e identificar processos problemáticos.

Embora os sistemas Linux tenham a reputação de serem elegantes, você pode descobrir que de repente está ficando sem espaço em disco. Por que isso aconteceu? A maior pista, e possivelmente o maior culpado, será encontrada nos logs do sistema Linux.

Por que os logs estão ocupando tanto espaço em disco?

Os logs são uma parte importante do gerenciamento do seu sistema Linux. Você pode ver o que está acontecendo com sua máquina e também solucionar problemas que surgirem. Os daemons de log do Linux são semelhantes ao Visualizador de Eventos no Windows. Os logs normalmente não ocupam muito espaço. Isso ocorre porque a maioria das distros gerencia automaticamente quanto espaço ocupam no disco.

Os logs do Linux têm sido historicamente arquivos de texto simples, mas com muitas distros importantes migrando para o systemd, eles são arquivos binários gerenciados pelo journald, um serviço do systemd. Alternativamente, sua distribuição usará rsyslog ou syslog-ng.

  Como jogar Trine Enchanted Edition no Linux

Como os logs antigos não são relevantes e os arquivos grandes podem ocupar espaço, seu sistema normalmente irá “rotá-los” – arquivá-los, compactá-los e, por fim, excluí-los – para economizar espaço em disco para o que você realmente deseja.

Embora você possa achar que os logs não ocupariam muito espaço, um processo com defeito pode preencher seus logs mais rápido do que o sistema consegue girá-los.

Se você verificar o espaço em disco e de repente ficar sem espaço e souber que não baixou nenhum arquivo grande recentemente, a causa pode ser um problema com os logs do sistema Linux. Você terá que descobrir o que está preenchendo os logs do sistema e consertar.

Você pode verificar quanto espaço em disco está usando com o comando du -h:

 du -h /var/log 

Você verá uma lista de cada subdiretório, juntamente com a quantidade total de espaço que ocupa:

Encontrando seus registros

Se você usa uma distribuição Linux moderna com systemd, usará o programa journalctl para visualizar seus logs; Journald normalmente armazena logs nos diretórios /var/log/journal ou /run/log/journal, dependendo da distribuição.

Para visualizar os logs, digite o comando journald no prompt do shell. Existem outras opções úteis de linha de comando. Para visualizar as mensagens de inicialização, use a opção -b:

 journalctl -b 

Você pode visualizar as mensagens de log do seu sistema em tempo real com a opção -f.

  Como personalizar temas Numix no Linux com OOMOX

Se sua distribuição não usa systemd, você encontrará os logs no diretório /var/log. Mesmo com o systemd, alguns programas ainda armazenam seus logs neste diretório. Esses são arquivos de texto comuns que você pode examinar com um utilitário como um pager, como o less.

Por exemplo, para ler o log do sistema:

 less /var/log/syslog

Você verá o conteúdo completo do arquivo de log, que pode conter milhares de linhas:

Você também pode monitorá-lo em tempo real com a opção -f do comando tail:

 tail -f /var/log/syslog

Como o Linux gira os arquivos de log

No diretório /var/log, você pode notar arquivos com nomes que terminam em “log.N.gz”, onde N é um número. Este é o resultado da rotação dos logs mais antigos pelo sistema. A maioria das distros possui um utilitário que faz isso automaticamente, chamado “logrotate”. logrotate normalmente é configurado para ser executado como um cron job ou um timer do systemd.

Por padrão, a maioria das distros executará o logrotate diariamente. logrotate compacta logs mais antigos usando gzip, conforme evidenciado pelas extensões de arquivo “.gz”. Ele usa um limite, como idade ou tamanho do arquivo, para fazer isso, e outro limite para excluir arquivos de log antigos.

As opções padrão para logrotate são suficientes para a maioria dos usuários de desktop. Você pode ajustar o comportamento do logrorate editando o arquivo /etc/logrotate.conf como superusuário, bem como editando os arquivos cron ou systemd timer do seu sistema, mas essas operações são realmente relevantes apenas para administradores de servidor.

  Como corrigir o erro pip “ambiente gerenciado externamente” no Linux

É melhor consertar o que está preenchendo seus logs do que ajustar os arquivos de configuração para economizar espaço em disco. Se for absolutamente necessário alterar a configuração, você pode ler o página de manual do logrotate.

Quais registros são seguros para exclusão?

Se tudo mais falhar e você estiver desesperado para liberar espaço em disco, poderá excluir manualmente os arquivos de log arquivados que terminam em “.gz” antes do logrotate. Você pode usar rm, mas precisará executá-lo como superusuário, pois esses arquivos pertencem ao sistema:

 sudo rm /var/syslog/syslog.*gz 

Este comando excluirá todos os arquivos contendo “syslog”. e terminando com “gz”.

Sempre tenha muito cuidado ao executar comandos via sudo, especialmente comandos destrutivos como rm!

Normalmente, você não deve excluir arquivos nos diretórios do sistema sem compreender totalmente as implicações, mas os logs arquivados não causarão problemas se estiverem faltando. Se você tiver um problema, talvez seja necessário consultar registros mais antigos.

Como consertar o que está preenchendo seus registros

A melhor maneira de descobrir o que está preenchendo seus logs é segui-los com as opções journalctl ou tail -f. Sua melhor aposta é repetir mensagens de erro.

Você terá que lidar com o processo incorreto para economizar espaço em disco. Se você não sabe o que está causando o erro, pode pesquisar na web ou pedir ajuda nos canais de suporte da sua distro. Quando finalmente consertar o problema, você poderá excluir os logs mais antigos com segurança. Você deve ter muito mais espaço em disco agora.