Por que df e du mostram uma saída diferente?

8

Quando executo o comando, df -h /tmpele diz que a utilização do disco é 100% , mas quando tenta du -sh /tmpdiz que a utilização do disco é 2% .

Quero saber por que esses comandos mostram resultados diferentes, como esses dois comandos funcionam e qual é a solução para esse problema.

Contexto: /tmp está instalado em seu próprio sistema de arquivos. Estou usando o Ubuntu 12.04 server edition na minha conta VPS. Devido a esse problema, a utilização de /tmp100%, de acordo com dfalguns programas, reclama de espaço livre no Windows /tmp.

Nischay
fonte

Respostas:

10

du relata o espaço livre digitalizando inodes acessíveis e calculando seu tamanho.

Se um arquivo for criado, aberto e posteriormente excluído enquanto ainda estiver aberto, o programa que o abriu continuará a ter acesso ao arquivo, e gravações e leituras poderão ser executadas no local da memória no disco. dunão considera esses arquivos abertos, ao passo que dfsim.

Uma simples reinicialização deve liberar / tmp e resolver seu problema.

Uma alternativa seria verificar os arquivos abertos e reiniciar ou interromper o processo que não liberou os arquivos excluídos.

Mahesh
fonte
1

Alguns arquivos no sistema de arquivos raiz podem estar ocultos atrás de um ponto de montagem. Os arquivos podem ser criados sob o ponto de montagem quando o dispositivo correspondente não está montado e, quando o dispositivo é montado novamente, os arquivos não são contados pelo comando du. Problema muito provável, quando há uma grande diferença entre os resultados du e df.

usuario
fonte
Bingo. Esta foi a causa para mim.
Jdhildeb
-1

Certifique-se de que você sudoesteja executando du. Por exemplo, se você executar du -hs /*, não verá o uso real do disco, a menos que adicione sudo.

raimohanska
fonte