Linux / Comando df: consultar espaço livre e uso de inodes

O comando df mostra o espaço total, usado e disponível dos sistemas de arquivos montados. Para verificar se uma gravação pode estar falhando por falta de espaço, consulte o sistema de arquivos do caminho afetado e confira também os inodes quando essa informação estiver disponível.

O df lê estatísticas do sistema de arquivos; ele não soma individualmente os arquivos de uma pasta. Para descobrir quais diretórios ocupam espaço, use o comando du. As duas ferramentas respondem a perguntas diferentes e seus totais não precisam coincidir.

Sintaxe e versão disponível

df [opções] [arquivo ou ponto de montagem]

Os colchetes indicam argumentos opcionais, que não devem ser digitados literalmente. Você pode passar um arquivo ou diretório existente: o resultado descreve o sistema de arquivos que contém esse caminho, e não o tamanho do próprio arquivo ou diretório.

Os exemplos usam o GNU df. Confira df --version, df --help e man df no ambiente de uso. As opções longas, como --output, podem não existir em outras implementações. O manual do GNU df descreve as consultas e as unidades de apresentação.

Ver os sistemas de arquivos montados

df -h

A opção -h apresenta tamanhos em potências de 1024, usando sufixos como M e G; -H, com H maiúsculo, usa potências de 1000. Não compare números com sufixos sem conferir a unidade. O resultado se refere aos sistemas de arquivos visíveis nesse ambiente, não a todos os discos físicos ou partições que possam existir.

Uma montagem é o ponto em que um sistema de arquivos fica acessível na árvore de diretórios. Em contêineres, volumes de rede e sistemas de arquivos sobrepostos, várias linhas podem depender do mesmo armazenamento subjacente. O GNU df também pode omitir entradas duplicadas ou especiais por padrão. Não some as linhas indiscriminadamente para calcular a capacidade física do servidor.

Conferir o espaço do caminho que recebeu o erro

df -h /var

Esse comando consulta o sistema de arquivos que contém /var. Se /var não tiver uma montagem própria, a linha pode corresponder ao sistema de arquivos raiz. Para uma aplicação que grava em outro volume, substitua o argumento pelo diretório real de destino, em vez de concluir que o espaço de / vale para qualquer caminho.

Se aparecer “No such file or directory”, confirme que o caminho existe nesse host e nesse ambiente. Uma falha de consulta não significa zero espaço livre. Verifique também se a montagem esperada está disponível: um diretório acessível sem o volume esperado pode estar no sistema de arquivos que o contém, alterando o sentido do resultado.

Verificar inodes quando ainda há espaço em bytes

df -i /var

Um inode é uma estrutura que guarda informações sobre um arquivo, como proprietário, permissões e localização dos dados. Onde o sistema de arquivos tem um limite de inodes, esgotá-los pode impedir a criação de novos arquivos mesmo com espaço em blocos disponível. Muitos arquivos pequenos podem consumir esse recurso sem ocupar um volume grande de dados.

Com -i, examine Inodes, IUsed, IFree e IUse%, em vez das colunas de bytes. Nem todo sistema de arquivos fornece uma contagem equivalente: campos com - indicam informação indisponível, e não uma prova de que há zero inodes livres ou uso de 0%. Se a contagem não explicar a falha, considere permissões, cotas e o estado da montagem conforme a mensagem de erro real.

Interpretar a linha de uso do sistema de arquivos

df -h /

O comando seleciona o sistema de arquivos associado à raiz. O exemplo abaixo ilustra o formato; o dispositivo, os valores e os nomes dos cabeçalhos podem mudar. Não é a saída medida no ambiente desta revisão.

Filesystem  Size  Used Avail Use% Mounted on
/dev/sda2    40G   18G   20G  48% /
  • Filesystem: origem do sistema de arquivos, aqui representada por /dev/sda2. Em outros ambientes, pode ser um volume lógico, uma origem de rede ou outra identificação.
  • Size e Used: tamanho total e espaço usado informado pelo sistema de arquivos, apresentados na unidade escolhida.
  • Avail: espaço disponível para uso não privilegiado. Blocos reservados e a contabilização do sistema de arquivos podem fazer esse valor diferir de Size - Used.
  • Use%: percentual de uso. No cálculo normal do GNU df, a base utiliza o espaço usado mais o disponível, com arredondamento para cima. Não espere reproduzir o percentual dividindo apenas os números arredondados de Used por Size.
  • Mounted on: ponto de montagem, neste caso /, que indica a qual árvore de caminhos a estatística se aplica.

Assim, a linha ilustrativa não permite tratar os 22G da subtração visual como 22G disponíveis: ela mostra 20G em Avail. O código de cálculo do GNU df distingue o disponível do total e calcula o percentual a partir das contagens anteriores à formatação legível. Para uma comparação precisa, consulte as contagens na mesma unidade.

Opções principais

Opção Uso
-h Apresenta tamanhos legíveis em potências de 1024.
-T Inclui o tipo do sistema de arquivos.
-i Mostra contagens de inodes, quando disponíveis, em lugar do uso em blocos.
-t TIPO Restringe o resultado ao tipo indicado; não seleciona um diretório pelo nome.
--output=CAMPOS Seleciona as colunas e sua ordem na implementação GNU.

Para ver o tipo do caminho atual, use df -T .. Depois de confirmar o tipo real, você pode filtrá-lo com -t. Um filtro sem resultado pode produzir uma saída de erro ou um código de falha; não interprete a ausência de uma linha como ausência de consumo.

Selecionar campos para uma comparação

No GNU df, df -B1 --output=source,fstype,size,used,avail,pcent,target . pede origem, tipo, tamanho, usado, disponível, percentual e ponto de montagem, com os valores de espaço em bytes. Troque . pelo caminho investigado. Essa consulta é útil para comparar unidades sem depender dos sufixos de -h.

A opção --output não deve ser combinada com -i, -T ou -P no GNU df. Para mostrar o tipo, selecione o campo fstype; para inodes, selecione campos como itotal, iused, iavail e ipcent. Essas regras constam no manual detalhado de df.

Escolher campos controla a apresentação, mas não transforma a saída em CSV nem garante que nomes e pontos de montagem nunca contenham espaços. Em uma automação, fixe a unidade, o idioma e os campos esperados, confira o código de saída e trate nomes e erros adequadamente. Não presuma que “a quinta palavra” sempre tenha o significado desejado.

Investigar diferenças entre df e du

Se o uso do sistema de arquivos parece maior que a soma dos diretórios, comece conferindo o mesmo caminho, o mesmo momento e as mesmas unidades. A FAQ do GNU Coreutils sobre df e du explica que uma informação global de armazenamento difere da soma de uma árvore de diretórios.

  1. Identifique o sistema de arquivos do diretório de gravação com df. Não compare o volume de uma aplicação com um du executado apenas em outra pasta ou em outra montagem.
  2. Confira os erros e o alcance da consulta de du. Diretórios sem acesso ou excluídos da leitura não entram em uma soma completa; atravessar outras montagens também muda o conjunto medido.
  3. Investigue arquivos removidos do diretório que continuam abertos por processos. Eles podem manter espaço alocado sem um nome que du encontre na árvore. Não encerre processos ou reinicie serviços indiscriminadamente apenas para tentar liberar esse espaço.
  4. Considere reservas, snapshots e a contabilização específica do sistema de arquivos ou do armazenamento remoto. Confirme o tipo e a configuração antes de concluir que há corrupção ou de modificar reservas e retenção.

As consultas de df mostram uma situação naquele momento e não liberam espaço. Se um serviço continuar gravando, os valores podem mudar entre duas leituras. Use o resultado para localizar o problema antes de decidir por limpeza ou mudança de configuração.

O que foi possível observar neste ambiente

Os testes usaram o GNU coreutils 8.32 no Bash 5.3.9 do Git para Windows. df -h e df -h / executaram, mas / correspondeu ao ambiente instalado do Git, não a uma raiz Linux. As duas consultas a /var falharam porque esse caminho não existia ali.

Na pasta do projeto, df -T . identificou NTFS e df -i . mostrou traços nos campos de inodes. Ao consultar um arquivo de referência, df apresentou a estatística do volume e du apresentou o uso daquele arquivo. Isso confirmou a diferença de escopo nesse ambiente; não foi um teste de esgotamento de inodes, blocos reservados ou recuperação de espaço em Linux.

Pergunta frequente

Por que df e du mostram valores diferentes?

df consulta as estatísticas globais do sistema de arquivos, enquanto du percorre os arquivos e diretórios acessíveis no conjunto escolhido. Caminhos diferentes, permissões, arquivos removidos ainda abertos e características do armazenamento podem produzir diferenças. Compare o mesmo sistema de arquivos e as mesmas unidades antes de diagnosticar a causa.