Está a ficar sem espaço em disco no Linux? Verifique os seus registos!
Ligações rápidas
⭐ Porque é que os registos estão a ocupar tanto espaço no disco?
⭐ Encontrando seus logs
⭐ Como o Linux gira os arquivos de log
⭐ Quais logs são seguros para apagar?
⭐ Como corrigir o que está a encher os seus registos
Principais conclusões
O sistema operativo Linux é conhecido por gerar quantidades substanciais de dados de registo, que podem consumir uma capacidade de armazenamento considerável no disco rígido ou na unidade de estado sólido.
O mecanismo do seu sistema emprega normalmente um método de compressão de registos arquivados para conservar a capacidade de armazenamento no seu dispositivo.
A utilização do comando journalctl
ou tail -f
permite examinar as entradas de registo e identificar processos potencialmente perturbadores, possibilitando uma resolução eficiente de problemas.
Apesar da perceção de que os sistemas Linux são simples e eficientes, os utilizadores podem ocasionalmente encontrar situações em que o armazenamento disponível se esgota a um ritmo inesperado. É essencial identificar a causa raiz de tais ocorrências, examinando os ficheiros de registo do sistema. Estes registos podem fornecer informações valiosas sobre as causas potenciais e oferecer orientações sobre como resolvê-las eficazmente.
Porque é que os registos estão a ocupar tanto espaço em disco?
Os ficheiros de registo desempenham um papel crucial na manutenção de um sistema Linux, fornecendo informações sobre as suas operações e permitindo a resolução de quaisquer problemas encontrados. Semelhante ao Visualizador de Eventos no Windows, os daemons de log do Linux oferecem um meio de monitorar as atividades do sistema e diagnosticar problemas. Vale a pena notar que os ficheiros de registo normalmente não consomem armazenamento significativo pois a maioria das distribuições têm mecanismos para regular a sua utilização do disco.
No passado, os ficheiros de log do Linux eram tipicamente compostos por dados de texto simples. No entanto, à medida que um número crescente de distribuições proeminentes tem feito a transição para a utilização do systemd para gerir os seus sistemas operativos, estes ficheiros de log existem agora em formato binário e são supervisionados pelo journald, que é ele próprio um serviço systemd. Dependendo da distribuição específica que está a ser utilizada, tanto o rsyslog como o syslog-ng podem ser empregues como um método alternativo para lidar com esses dados de registo.
Para conservar a capacidade de armazenamento no disco rígido de um computador, é prática comum dos sistemas arquivar e remover periodicamente ficheiros de registo desactualizados que já não são pertinentes ou necessários. Esse processo envolve a compactação e a exclusão de dados antigos para dar espaço a informações mais recentes que podem ser de maior importância.
Assume-se frequentemente que os ficheiros de registo não ocupam uma capacidade de armazenamento significativa; no entanto, uma operação anómala pode gerar entradas de registo a um ritmo que excede a capacidade do sistema para as rodar e gerir eficazmente.
Se descobriu que o seu espaço disponível em disco diminuiu inesperadamente, e não consegue identificar nenhum download recente de ficheiros substanciais como a fonte deste problema, é possível que uma acumulação de dados dentro do seu log do sistema Linux seja a responsável. Para resolver esta situação, terá de determinar o conteúdo específico dos registos do sistema que está a consumir espaço de armazenamento valioso e implementar as medidas correctivas necessárias.
O comando du
, quando invocado com a opção -h
, é um meio eficaz de verificar a quantidade de espaço em disco que está a ser utilizada pelos ficheiros e directórios dentro de um diretório específico ou através de múltiplos directórios no seu sistema.
du -h /var/log
Ser-lhe-á apresentada uma enumeração de todos os subdirectórios, acompanhada pela sua capacidade de armazenamento cumulativa:
Encontrar os seus logs
Utilizar uma distribuição Linux contemporânea que empregue o systemd necessita do utilitário JournalTL (journalt) para examinar os dados dos logs. O local de armazenamento destes registos depende da variante específica do sistema operativo e pode ser encontrado no diretório ‘/var/log/journal’ ou no diretório ‘/run/log/journal’, ambos normalmente localizados no volume do sistema de ficheiros raiz.
Para aceder aos ficheiros de registo utilizando o terminal, introduza “journald” na linha de comandos. Adicionalmente, existem várias alternativas convenientes de linha de comandos disponíveis para fins específicos. Por exemplo, para rever as mensagens de arranque, utilize a opção “-b”:
journalctl -b
A utilização da flag -f
permite aos utilizadores examinar as mensagens registadas do sistema de uma forma actualizada e em tempo real.
Se o seu sistema operativo utiliza um mecanismo de iniciação diferente do systemd, os ficheiros de log estarão localizados dentro do diretório /var/log. Por outro lado, mesmo quando o systemd é utilizado, certas aplicações podem continuar a reter os seus dados de registo dentro desta pasta. Os ficheiros de log são documentos de texto sem adornos e podem ser consultados utilizando uma ferramenta de paginação convencional, por exemplo, “less”.
Por exemplo, para ler o registo do sistema:
less /var/log/syslog
A informação completa dentro do ficheiro de registo, consistindo em numerosas linhas que potencialmente chegam aos milhares, será mostrada para sua leitura.
Também se pode observar o seu progresso em direto através da utilização do modificador “-f” do comando tail, executando o comando apropriado no terminal ou na linha de comandos.
tail -f /var/log/syslog
How Linux Rotates Log Files
A presença de ficheiros dentro do diretório /var/log com etiquetas que terminam em “log.N.gz”, em que N representa um valor aritmético, significa o funcionamento do mecanismo do sistema para arquivar registos desactualizados. Normalmente, a maioria dos sistemas operativos incorpora uma aplicação de software conhecida como “logrotate” que executa esta função de forma autónoma. O Logrotate pode ser configurado para ser executado como uma tarefa agendada iniciada pelo daemon cron ou acionada por meio de um timer systemd.
O Logrotate é tipicamente ativado na maioria das distribuições diariamente, com a função primária de comprimir ficheiros de registo arquivados através da utilização da tecnologia gzip, que pode ser identificada pela presença de extensões de ficheiros “.gz” anexadas aos ficheiros comprimidos. O Logrotate utiliza limites específicos, como a idade ou o tamanho do ficheiro, para determinar quando deve ocorrer a compressão, ao mesmo tempo que implementa um limite adicional para eliminar ficheiros de registo desactualizados do sistema.
As definições padrão do logrotate devem ser suficientes para a maioria dos utilizadores de computadores. No entanto, aqueles que procuram ajustar o seu funcionamento podem fazê-lo através da alteração do ficheiro de configuração localizado em /etc/logrotate.conf
numa capacidade de supervisão. Adicionalmente, é necessário considerar a modificação do agendamento cron do sistema ou das configurações do temporizador do systemd, o que é tipicamente da competência dos administradores do servidor.
É melhor consertar o que está enchendo seus logs do que ajustar os arquivos de configuração para economizar espaço em disco. Se tiver mesmo de alterar a configuração, pode ler a página do manual do logrotate .
Que registos são seguros para eliminar?
Nos casos em que a recuperação de armazenamento adicional é imperativa e os procedimentos padrão foram esgotados, pode-se considerar a erradicação de ficheiros de registo que são comprimidos com gzip, denotados pela sua extensão de ficheiro “.gz”. No entanto, dado que estes documentos estão relacionados com o funcionamento do sistema, devem ser eliminados sob a autoridade de um utilizador privilegiado. O comando “rm” pode ser utilizado para este efeito, necessitando de privilégios administrativos para ser executado eficazmente.
sudo rm /var/syslog/syslog.*gz
Esta instrução eliminará todos os ficheiros que tenham “syslog” no nome e que terminem com “.gz”.
Quando se utiliza o comando sudo
para executar operações potencialmente prejudiciais ou destrutivas, tais como apagar ficheiros com rm
, é da maior importância exercer extrema cautela e diligência de modo a evitar quaisquer consequências não intencionais que possam resultar de uma utilização imprópria.
É geralmente aconselhável não remover ficheiros dos directórios do sistema sem compreender bem as potenciais consequências, mas a eliminação de ficheiros de registo arquivados não deverá resultar em quaisquer problemas desde que estejam ausentes. No entanto, se surgir um problema, pode ser necessário recuperar informações de registos de registo anteriores para fins de resolução de problemas.
Como corrigir o que está a encher os seus registos
Um método eficaz para determinar o conteúdo dos ficheiros de registo é utilizar os comandos journalctl ou tail -f, concentrando-se especificamente em quaisquer mensagens de erro recorrentes que possam aparecer nos mesmos.
Para aliviar o problema de espaço insuficiente em disco, é necessário identificar e encerrar o processo errante responsável pelo consumo de armazenamento. Nos casos em que a origem do problema não é clara, consultar os recursos online ou procurar assistência nos canais de suporte do sistema operativo pode ser útil. Uma vez resolvida a causa principal, a eliminação de ficheiros de registo desactualizados libertará capacidade de armazenamento adicional sem risco. Com isto rectificado, deverá sentir-se um aumento notável no espaço disponível em disco.