Diagnóstico de Problemas de Espaço em Disco

LinuxBeginner
Pratique Agora

Introdução

Ficar sem espaço em disco é um problema comum para administradores de sistemas e desenvolvedores. Quando um disco fica cheio, as aplicações podem falhar e o sistema pode se tornar instável. Saber como diagnosticar e resolver rapidamente esses problemas é uma habilidade crítica.

Neste laboratório, você assumirá o papel de um administrador de sistemas que recebeu um alerta sobre pouco espaço em disco. Você aprenderá uma abordagem sistemática para identificar o que está consumindo o espaço e como recuperá-lo com segurança. Você usará um conjunto de ferramentas padrão de linha de comando do Linux: df, du, find e truncate. Ao final deste laboratório, você estará confiante em sua capacidade de lidar com emergências básicas de espaço em disco.

Verificar Uso do Disco

Nesta etapa, você começará sua investigação obtendo uma visão geral do uso do espaço em disco em todos os sistemas de arquivos montados. A melhor ferramenta para este trabalho é o comando df (disk free - disco livre).

O comando df relata a quantidade de espaço em disco usada e disponível nos sistemas de arquivos. Usá-lo com a flag -h (human-readable - legível por humanos) torna a saída muito mais fácil de ler, exibindo os tamanhos em potências de 1024 (por exemplo, Kilobytes, Megabytes, Gigabytes).

Execute o seguinte comando no seu terminal para verificar o uso atual do disco:

df -h

Você verá uma saída semelhante a esta. Preste muita atenção à coluna Use% (Uso%), especialmente para o sistema de arquivos raiz, que está montado em /. Uma porcentagem alta aqui indica um problema potencial.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        40G   38.5G  1.5G  96% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs          1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdb1        20G  1.2G   19G   6% /home/labex/project
...

A partir da saída do exemplo, você pode ver que o sistema de arquivos raiz (/dev/vda3, montado em /) está com 96% de capacidade. Isso confirma que há um problema de espaço em disco que precisa ser resolvido.

Localizar Arquivos Grandes

Nesta etapa, após identificar que o disco está enchendo, sua próxima tarefa é descobrir quais diretórios estão consumindo mais espaço. O comando du (disk usage - uso do disco) é perfeito para isso. Ele estima o uso do espaço em arquivos.

Usaremos o du com as seguintes opções:

  • -s: (summarize - resumir) para exibir apenas um total para cada argumento.
  • -h: (human-readable - legível por humanos) para imprimir os tamanhos em um formato mais legível (por exemplo, 1K, 234M, 2G).

Vamos verificar o tamanho do conteúdo dentro do seu diretório project. Seu diretório de trabalho atual é ~/project, então você pode usar um caminho relativo.

Execute o seguinte comando para ver o tamanho de cada arquivo e subdiretório no diretório ~/project:

du -sh ~/project/*

O comando produzirá uma saída mostrando o tamanho de cada item. Você deverá ver o arquivo grande que foi criado durante a configuração do laboratório.

3.0G /home/labex/project/large_data_archive.dat

Esta saída informa que um arquivo chamado large_data_archive.dat dentro do seu diretório de projeto está ocupando 3.0GB de espaço. Embora esta seja uma fonte de consumo de espaço, a saída do df da etapa anterior sugeriu um problema maior, que pode estar localizado fora do diretório home.

Localizar Arquivos de Log Grandes

Nesta etapa, após investigar outra causa comum de problemas de espaço em disco: arquivos de log grandes. Os logs do sistema e das aplicações são frequentemente armazenados no diretório /var/log. Se não forem gerenciados adequadamente, esses arquivos podem crescer indefinidamente.

O comando find é uma ferramenta poderosa para procurar arquivos e diretórios. Você pode usá-lo para localizar arquivos com base em vários critérios, como nome, tipo e tamanho.

Usaremos o find para procurar por quaisquer arquivos (-type f) no diretório /var/log que sejam maiores que 10 Megabytes (-size +10M). Como o diretório /var/log é de propriedade do usuário root, você precisará usar sudo para conceder privilégios administrativos para que o comando inspecione todos os arquivos.

Execute o seguinte comando no seu terminal:

sudo find /var/log -type f -size +10M

O comando irá escanear o diretório especificado e imprimir o caminho de qualquer arquivo que corresponda aos critérios. Sua saída pode mostrar mais de um arquivo.

/var/log/syslog
/var/log/journal/deaaf690a67544aaaa83c02167a202c6/user-6000@0005fc8f16f7df1a-7ea5bde2c8c33f92.journal~

A saída mostra claramente que /var/log/syslog é maior que 10MB. Embora outros arquivos grandes, como logs do journal, também possam estar presentes, focaremos no syslog para este exercício. Você identificou agora um arquivo de log específico e grande que está contribuindo para o problema de espaço em disco.

Limpar um Arquivo de Log

Nesta etapa, agora que você identificou um arquivo de log grande, você precisa liberar o espaço que ele está consumindo. Simplesmente excluir o arquivo com rm pode, às vezes, causar problemas se um serviço estiver escrevendo ativamente nele. Um método mais seguro é esvaziar o conteúdo do arquivo sem excluir o arquivo em si.

O comando truncate foi projetado para este propósito. Ele pode encolher ou estender o tamanho de um arquivo para um tamanho especificado. Ao definir o tamanho como zero, você efetivamente esvazia o arquivo.

Você usará o truncate com a opção -s 0, que define o tamanho do arquivo para 0 bytes. Novamente, você precisará de sudo porque está modificando um arquivo de sistema.

Execute o comando abaixo para limpar o conteúdo do syslog:

sudo truncate -s 0 /var/log/syslog

Um comando truncate bem-sucedido não produz nenhuma saída. Para verificar se funcionou, você pode usar o comando ls -lh para verificar o novo tamanho do arquivo.

ls -lh /var/log/syslog

A saída agora deve mostrar o tamanho do arquivo como 0.

-rw-r----- 1 syslog adm 0 Oct 22 15:31 /var/log/syslog

Você limpou com sucesso e com segurança o arquivo de log grande, liberando espaço em disco.

Verificar a Correção

Nesta etapa, você realizará a ação final e mais importante: verificar se seus esforços resolveram o problema de espaço em disco. Você usará o comando df -h novamente, assim como fez na primeira etapa.

Ao comparar a nova saída com a original, você pode confirmar que o espaço em disco foi liberado.

Execute o comando df -h mais uma vez:

df -h

Você deverá ver uma saída onde o Use% (Percentual de Uso) para o sistema de arquivos raiz (/) é menor do que estava na Etapa 1.

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        40G   37G  3.0G  92% /
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs          1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vdb1        20G  1.2G   19G   6% /home/labex/project
...

O uso caiu de 96% para 92%, confirmando que truncar o arquivo de log funcionou. Para completar a limpeza, você também pode remover o arquivo de dados grande que encontrou no seu diretório de projeto.

rm ~/project/large_data_archive.dat

Agora, execute df -h pela última vez para ver o resultado final de todas as suas ações de limpeza. O espaço disponível deve ter aumentado ainda mais. Isso confirma que você diagnosticou e resolveu com sucesso o problema de espaço em disco.

Resumo

Parabéns por completar o laboratório! Você diagnosticou e resolveu com sucesso um problema comum de espaço em disco em um sistema Linux.

Neste laboratório, você aprendeu um fluxo de trabalho prático, passo a passo:

  1. Você usou df -h para obter uma visão geral do uso do disco e confirmar um problema.
  2. Você usou du -sh para inspecionar o tamanho de diretórios específicos e identificar arquivos grandes.
  3. Você usou find para procurar arquivos com base em critérios específicos, como tamanho, a fim de localizar arquivos de log grandes.
  4. Você aprendeu a usar truncate -s 0 como uma maneira segura de esvaziar um arquivo sem excluí-lo.
  5. Finalmente, você verificou sua correção executando novamente df -h para ver o espaço recuperado.

Estes comandos são ferramentas essenciais para qualquer usuário Linux ou administrador de sistema. Com este conhecimento, você está agora mais bem preparado para manter seus sistemas funcionando sem problemas.