Perché df e du mostrano output diversi?


8

Quando eseguo il comando df -h /tmp, dice che l' utilizzo del disco è del 100% , ma quando lo prova du -sh /tmpdice che l' utilizzo del disco è del 2% .

Voglio sapere perché questi comandi mostrano output diversi, come funzionano questi due comandi e qual è la soluzione a questo problema.

Contesto: /tmp è installato sul proprio file system. Sto usando Ubuntu 12.04 Server Edition sul mio account VPS. A causa di questo problema l'utilizzo del /tmp100% secondo dfalcuni programmi si lamenta dello spazio libero in /tmp.

Risposte:


10

du segnala lo spazio libero scansionando gli inode raggiungibili e calcolandone le dimensioni.

Se un file viene creato, aperto e successivamente eliminato mentre è ancora aperto, il programma che lo ha aperto continuerà ad avere accesso al file e scritture e letture possono essere eseguite in quella posizione di memoria sul disco. dunon tiene conto di tali file aperti mentre lo dffa.

Un semplice riavvio dovrebbe scaricare / tmp e risolvere il problema.

Un'alternativa sarebbe scansionare i file aperti e riavviare o terminare il processo che non ha rilasciato i file eliminati.


1

Alcuni file nel filesystem di root possono essere nascosti dietro un mount point. I file possono essere creati sotto il punto di montaggio quando il dispositivo corrispondente non è montato e quando il dispositivo viene montato nuovamente, i file non vengono conteggiati dal comando du. Problema molto probabile, quando c'è una grande differenza tra i risultati du e df.


Bingo. Questa è stata la causa per me.
jdhildeb,

-1

Assicurati di sudocorrere du. Ad esempio, se esegui du -hs /*, non vedrai l'utilizzo del disco reale se non lo aggiungi sudo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.