Disco cheio no servidor? Como usar o du e df no Linux
Aprenda o passo a passo prático para rastrear diretórios inchados e recuperar espaço em disco no Linux usando comandos essenciais como du e df.
Resumo
- O comando df exibe a ocupação geral das partições montadas no sistema operacional.
- O comando du calcula o espaço real ocupado por arquivos e subdiretórios específicos.
- Identificar o ponto de montagem problemático evita diagnósticos errados em servidores lotados.
- Arquivos abertos e deletados continuam retendo espaço em disco até que o processo seja encerrado.
- Manter rotinas de limpeza preventiva garante a estabilidade de ambientes de produção.
O alerta de espaço esgotado e o pânico no servidor
Trabalhar com administração de sistemas em servidores Linux invariavelmente nos coloca diante de uma mensagem assustadora: o disco ficou completamente cheio. Aplicações travam abruptamente, bancos de dados interrompem transações por falta de espaço para gravação de logs e o acesso remoto via SSH pode até mesmo recusar novas conexões. Na prática, isso significa que a máquina perdeu a capacidade de escrever novos dados no armazenamento físico, paralisando os serviços essenciais que rodam sobre ela. Quando o sistema atinge esse limite crítico, a primeira reação comum é o desespero acompanhado de exclusões aleatórias de arquivos, o que raramente resolve o problema e pode gerar falhas ainda maiores. Para evitar esse tipo de situação drástica, precisamos contar com ferramentas nativas capazes de mapear exatamente onde o espaço foi consumido, descobrindo os vilões ocultos que incharam a infraestrutura. Assim como um diagnóstico médico precisa ser preciso antes de qualquer intervenção cirúrgica, precisamos examinar o sistema de arquivos com método e ferramentas adequadas antes de sair apagando dados importantes, o que dialoga diretamente com cuidados que abordamos ao recuperar arquivos apagados no Linux com o TestDisk em casos de acidentes.
Entendendo a visão macro com o comando df
O primeiro passo para investigar um problema de armazenamento é olhar o panorama geral da máquina através do comando df, que significa disk free ou espaço livre em disco. Na prática, este utilitário examina todas as partições e pontos de montagem ativos no sistema operacional, mostrando a capacidade total, o espaço já utilizado, o percentual de ocupação e onde cada partição está conectada na árvore de diretórios. Para tornar a leitura amigável aos olhos humanos, costumamos rodar o comando acompanhado da flag -h, que converte os números brutos de blocos em unidades compreensíveis como gigabytes e megabytes. Se você notar gargalos severos de leitura e escrita associados à lentidão geral do sistema, vale a pena cruzar essa análise com orientações sobre como identificar gargalos de I/O em NVMe no Linux. O uso básico do comando em seu terminal pode ser executado da seguinte maneira:
df -hAo executar essa instrução, a tela exibirá uma tabela dividida em colunas informativas. A coluna chamada Filesystem aponta o dispositivo físico ou partição, Size mostra o tamanho total, Used revela o espaço ocupado, Avail indica o que ainda está disponível, Use% mostra a porcentagem exata de uso e Mounted on revela o diretório raiz ou ponto de montagem onde aquela partição opera. Se a linha correspondente à barra (o diretório raiz /) estiver marcando cem por cento de uso, sabemos exatamente onde reside a emergência operacional.
Rastreando os maiores consumidores de espaço com o du
Uma vez descoberto qual sistema de arquivos está soterrado por dados, o próximo passo lógico é descobrir quais pastas específicas estão causando o inchaço. Para essa missão cirúrgica, utilizamos o comando du, abreviação de disk usage ou uso de disco, que percorre recursivamente as pastas do sistema calculando o peso de cada estrutura. Como pastas grandes contêm milhares de subdiretórios, rodar o comando sem filtros gera uma enxurrada interminável de linhas na tela que não ajuda em nada no diagnóstico rápido. Para contornar esse comportamento e obter um resumo limpo, combinamos o comando com parâmetros inteligentes que limitam a profundidade da busca e ordenam os resultados por tamanho de forma decrescente, técnica muito útil também quando limpamos acúmulos gerados em como limpar o cache do Docker no Linux e liberar espaço. Veja como inspecionar o diretório atual listando os maiores diretórios:
du -h --max-depth=1 | sort -hrNessa linha de comando, a flag -h mantém a legibilidade humana dos tamanhos, o argumento --max-depth=1 restringe a varredura apenas ao primeiro nível de subdiretórios abaixo da pasta atual, impedindo que o terminal se perca em subníveis profundos, e o comando sort -hr organiza tudo colocando os maiores consumidores no topo da lista. Ao rodar essa sequência dentro da pasta raiz, você rapidamente isolará se o problema está escondido dentro de diretórios como var, usr ou home, direcionando sua investigação para o local exato do problema.
Investigando arquivos gigantes e limpando o lixo acumulado
Com o cerco fechado em torno do diretório problemático, podemos navegar até ele e repetir a busca para isolar o arquivo ou subpasta exata que está consumindo gigabytes preciosos. Muitas vezes nos deparamos com arquivos de log gigantescos gerados por aplicações que falharam em rotacionar seus registros de atividade, ou arquivos temporários esquecidos por instaladores e processos em segundo plano. Caso sua máquina utilize gerenciadores de pacotes tradicionais, uma excelente prática preventiva e complementar é como limpar o cache do APT e liberar espaço no Linux para recuperar megabytes valiosos sem risco. Para listar os arquivos e pastas ordenados por tamanho dentro de um diretório específico, podemos utilizar uma combinação robusta do du com ferramentas de ordenação:
du -ah --max-depth=1 /var/log/ | sort -hr | head -n 20Neste comando mais avançado, a flag -a instrui o utilitário a incluir arquivos individuais além dos diretórios, e a ferramenta head -n 20 limita a exibição estritamente aos vinte maiores itens encontrados, poupando tempo precioso do operador. Ao identificar um arquivo morto ou um log obsoleto que não possui mais utilidade operacional, você pode removê-lo com segurança através do comando rm, aliviando imediatamente a pressão sobre o sistema operacional e restabelecendo a margem de segurança do servidor.
Um erro clássico e muito comum cometido por administradores iniciantes ocorre quando removem arquivos grandes de log enquanto a aplicação continua escrevendo neles, cenário onde o espaço em disco misteriosamente não é liberado após a exclusão. Na prática, isso acontece porque o processo em execução mantém um descritor de arquivo aberto na memória, fazendo com que o sistema operacional mantenha os blocos físicos alocados até que o processo seja totalmente reiniciado ou a conexão seja fechada. Para rastrear esses fantasmas silenciosos que continuam ocupando espaço mesmo após o comando de remoção, podemos recorrer a utilitários de auditoria do núcleo do sistema, técnica correlata à que utilizamos quando analisamos falhas de memória em container travando como auditar o OOM Killer com dmesg. Nesses casos extremos, reiniciar o serviço associado ou encerrar o processo problemático força o sistema a liberar definitivamente os blocos de armazenamento ociosos.
Considerações finais sobre o monitoramento de armazenamento
Gerenciar o espaço em disco de servidores Linux vai muito além de apagar arquivos manualmente quando o alarme de disco cheio dispara no meio da madrugada. Ao dominar o uso combinado dos comandos df para a visão geral e du para o detalhamento cirúrgico, o profissional ganha autonomia e velocidade para diagnosticar qualquer gargalo de armazenamento antes que ele se transforme em uma interrupção de serviço. Adotar rotinas periódicas de inspeção, configurar alertas automáticos de limite de capacidade e compreender o comportamento dos processos em relação aos arquivos abertos são pilares fundamentais para manter uma infraestrutura robusta, estável e preparada para o crescimento contínuo dos negócios.