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.

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.


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.