Dlaczego df i du wykazują różne wyniki?

8

Kiedy wykonuję polecenie df -h /tmp, mówi, że użycie dysku wynosi 100% , ale kiedy spróbuję du -sh /tmp, mówi, że użycie dysku wynosi 2% .

Chcę wiedzieć, dlaczego te polecenia pokazują różne dane wyjściowe, jak działają te dwa polecenia i jakie jest rozwiązanie tego problemu.

Kontekst: /tmp jest zainstalowany we własnym systemie plików. Korzystam z wersji serwera Ubuntu 12.04 na moim koncie VPS. Z powodu tego problemu wykorzystanie /tmp100% według dfniektórych programów narzeka na wolne miejsce w /tmp.

Nischay
źródło

Odpowiedzi:

10

du zgłasza wolne miejsce, skanując osiągalne i-węzły i obliczając ich rozmiar.

Jeśli plik zostanie utworzony, otwarty, a następnie usunięty, gdy jest jeszcze otwarty, program, który go otworzył, będzie nadal miał dostęp do pliku, a zapisy i odczyty można wykonać w tym miejscu pamięci na dysku. dunie uwzględnia takich otwartych plików, podczas dfgdy.

Prosty restart powinien opróżnić / tmp i rozwiązać problem.

Alternatywą byłoby skanowanie otwartych plików i ponowne uruchomienie lub zabicie procesu, który nie spowodował zwolnienia usuniętych plików.

Mahesh
źródło
1

Niektóre pliki w głównym systemie plików można ukryć za punktem instalacji. Pliki można utworzyć pod punktem montowania, gdy odpowiednie urządzenie nie zostanie zamontowane, a gdy urządzenie zostanie ponownie zamontowane, pliki nie są liczone przez polecenie du. Bardzo prawdopodobny problem, gdy występuje duża różnica między wynikami du i df.

Nacięcie
źródło
Bingo To był dla mnie powód.
jdhildeb
-1

Upewnij się, że sudobiegniesz du. Na przykład, jeśli uruchomisz du -hs /*, nie zobaczysz rzeczywistego użycia dysku, chyba że dodasz sudo.

raimohanska
źródło