Visão Geral
Poucas falhas causam tanta dor de cabeça em ambientes de produção quanto o temido alerta No space left on device. Nessa hora, a principal ferramenta na ponta dos dedos de qualquer administrador de sistemas é o utilitário df (disk free). Neste tutorial, exploraremos desde a formatação simplificada dos valores de armazenamento e técnicas de filtragem para eliminar ruídos de sistemas de arquivos virtuais, até o diagnóstico de esgotamento de Inodes — cenário no qual o sistema bloqueia novos arquivos mesmo havendo gigabytes disponíveis. Por fim, investigaremos por que o df e o du frequentemente reportam números divergentes quando arquivos deletados continuam retidos por processos em execução.
1. Monitoramento Básico e Leitura em Unidades Amigáveis (df -h)
O binário df tem como objetivo central inspecionar a alocação e o espaço residual de cada partição montada no sistema operacional.
Ao dispará-lo isoladamente sem parâmetros adicionais, os totais são exibidos na escala padrão de blocos de 1KB (1K-blocks), o que torna a interpretação visual pouco intuitiva e exige cálculos manuais desnecessários.
⚙️ [Parâmetros Essenciais]
-h : Converte blocos numéricos brutos em grandezas legíveis (K, M, G).-T : Revela explicitamente a tecnologia do sistema de arquivos (como ext4, xfs, overlay).-i : Alterna a checagem da capacidade em bytes para a tabela de Inodes (metadados de arquivos).-t : Restringe a listagem exclusivamente ao tipo de sistema de arquivos indicado.-x : Suprime da tabela final os sistemas de arquivos correspondentes ao critério informado.

Ao acrescentar a flag -h (–human-readable), instruímos o comando a processar as métricas em múltiplos binários ajustados para fácil assimilação visual.
A tabela resultante substitui sequências extensas de dígitos por valores expressos em megabytes (M) e gigabytes (G), proporcionando uma leitura instantânea do espaço livre em cada ponto de montagem.

2. Otimizando a Visualização: Filtrando e Isolando Partições Relevantes (df -h -x / -t)
Com a instrução df -h -x tmpfs -x devtmpfs -x squashfs, encadeamos o modificador -x (–exclude-type) para expurgar da listagem estruturas de armazenamento temporárias ou virtuais.
Especialmente em distribuições modernas como o Ubuntu, montagens originadas do Snap (squashfs) e áreas de memória volátil (tmpfs, devtmpfs) poluem a tela, ofuscando o consumo dos discos físicos.
A exclusão desses pontos gera um relatório enxuto, concentrando a atenção nos volumes de armazenamento persistente.

Por outro lado, caso você queira focar apenas em uma arquitetura de armazenamento específica, basta aplicar df -h -t ext4 via parâmetro -t (–type).
Dessa forma, o relatório isola unicamente as partições formatadas como ext4, simplificando a supervisão das unidades de armazenamento principais sem distrações.

3. Espaço Livre mas Erro de Gravação? Investigando o Esgotamento de Inodes (df -i)
Para simular e compreender a dinâmica de metadados no sistema de arquivos, criamos um diretório de testes populado com dez arquivos vazios.

A execução de df -i /tmp/df-test analisa pontualmente o volume associado à pasta, revelando a saúde da tabela de Inodes em vez da volumetria em bytes.
Um disco rígido pode dispor de dezenas de gigabytes livres e, ainda assim, recusar a gravação de novos dados caso o limite de Inodes atinja 100% de ocupação (IUse% 100%).
Avaliando as colunas Inodes (total provisionado), IUsed (quantidade em uso) e IFree (entradas disponíveis), é possível diagnosticar com precisão cenários em que diretórios acumulando milhões de arquivos minúsculos estouraram a cota do sistema de arquivos.

Finalizado o diagnóstico experimental, efetuamos a limpeza do ambiente de testes rodando rm -rf /tmp/df-test.

4. Diagnóstico Avançado: Arquivos Fantasmas e a Divergência entre df e du
Para demonstrar a investigação de descritores de arquivos travados por serviços ativos, verificamos a disponibilidade do utilitário lsof e realizamos sua instalação caso necessário.

A instrução lsof +L1 rastreia todos os arquivos que, embora desvinculados do sistema de arquivos (link count zerado), continuam abertos e mantidos na memória por processos ativos.
Quando logs volumosos são excluídos com rm, mas a aplicação que os gerava continua viva sem reciclar os descritores, os blocos de disco continuam alocados. Consequentemente, o du deixará de enxergar o arquivo, mas o df continuará reportando o disco como cheio.
Ao identificar o PID (Process ID) causador na saída do comando, basta reiniciar ou encerrar o processo correspondente para que o kernel desaloque os blocos e devolva o espaço livre para a partição.

Dominar o comportamento do comando df e suas principais flags é um divisor de águas na manutenção preventiva de servidores Linux.
Ao incorporar essas abordagens em suas rotinas de monitoramento e auditoria de storage, você previne indisponibilidades operacionais e soluciona gargalos de disco com extrema rapidez.