Dlaczego polecenia „df” i „du” pokazują różne użycie dysku?

26

Nie mogę uzyskać dostępu do systemu ubuntu na moim komputerze, pojawia się komunikat o błędzie: „ system działa w trybie niskiej grafiki ” i próbowałem niektórych poleceń, które szukałem w Internecie.

Odkryłem, że problem wydaje się, że nie ma dostępnego miejsca na dysku. Użyłem poleceń „ df ” i „ du ”, aby sprawdzić, wyniki są następujące:

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

i

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

jak mam wyczyścić system, aby uzyskać więcej miejsca na dysku?

użytkownik2068965
źródło
Pytanie w tytule i na końcu pytania jest zupełnie inne. Niektóre odpowiedzi dotyczą jednego pytania, niektóre drugiego. Powinieneś wyjaśnić swoje rzeczywiste potrzeby i ewentualnie zaakceptować również odpowiedź.
Melebius

Odpowiedzi:

50

Najprawdopodobniej wiesz, że możesz usunąć plik, który jest nadal używany przez niektóre aplikacje, i dla tej aplikacji pozostaje on dostępny. Dzieje się tak, ponieważ deskryptor pliku w systemie / proc / system plików jest otwarty.

Jeśli więc istnieją już takie otwarte deskryptory plików, które zostały już usunięte, zajmowane przez nich miejsce uważa się za wykorzystane df(i dfma rację), ale nie można ich uwzględnić, duponieważ nie są już z nimi powiązane nazwy plików.

Możesz znaleźć wszystkie niepowiązane, ale trzymane otwarte pliki za pomocą:

# lsof | grep '(deleted)'
Dmitrij Aleksandrow
źródło
7
To mnie uratowało. Nie miałem pojęcia, dlaczego mój dysk jest pełny, ale du powiedział, że jest pusty. Otwarty uchwyt pliku dla pliku 8 GB
Cheyne
5
Jak mogę usunąć linki?
Vikas Hardia
1
Czasami musisz wykonać to jako root, aby zobaczyć usunięte pliki przechowywane przez procesy innych użytkowników.
Envek,
1
Główną przyczyną tego jest dla mnie niepoprawna specyfikacja pliku dziennika w jednym z moich /etc/logrotate.dplików. W złym wpisie brakowało procedury postrotate, co spowodowało, że mój proces demona nie puścił obróconych / usuniętych plików.
Dale Anderson,
jak mogę usunąć te niepowiązane, ale otwarte pliki?
zx1986
14

Jak mogę usunąć linki? - Vikas Hardia 22 sierpnia 14 o 5:46

Musisz znaleźć proces, który przechowuje uchwyt pliku. Użyj polecenia Dmitrija Aleksandrowa, tam zobaczysz proces i pid. W naszym przypadku i „stary” plik dziennika lakieru był zabójcą przestrzeni.

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

Nie zapomnij uruchomić usługi lub przetworzyć ponownie, jeśli jest to demon lub inna usługa na twoim komputerze. Jeśli możesz, po prostu uruchom ponownie komputer;)

Octeny
źródło
9

Ok, sprawdźmy strony podręcznika:

df - raportuje użycie miejsca na dysku systemu plików

i

du - oszacuj wykorzystanie przestrzeni plików

Te dwa narzędzia były przeznaczone do różnych propozycji. Chociaż dfma pokazywać użycie systemu plików, duto raportować wykorzystanie przestrzeni plików. dudziała z plików, podczas gdy dfdziała na poziomie systemu plików, raportując, co jądro mówi, że jest dostępne. Kontynuuj czytanie strony dupodręcznika obsługującej to:

Podsumuj użycie dysku dla każdego PLIKU , rekurencyjnie dla katalogów.

mówi, że dudziała z plikami.

dfwyświetla ilość miejsca na dysku dostępnego w systemie plików zawierającym każdy argument nazwy pliku. Jeśli nie podano nazwy pliku, wyświetlana jest przestrzeń dostępna we wszystkich aktualnie podłączonych systemach plików.

tutaj mówi, że dfnie dbają o pliki, ale sam system plików.

Braiam
źródło
du use można zmodyfikować za pomocą znaku -x, aby nakazał liczenie plików tylko w danym systemie plików.
macetw
1

Mówiąc prosto:

Uruchomiłeś dubez uprawnień roota. Więc to nie jest w stanie sprawdzić ilość wolnego miejsca w /proc, /mntitp, foldery.

df pokazał odpowiednio całkowitą wykorzystaną i wolną przestrzeń.

Dlatego podczas sprawdzania głównego systemu plików Linux weź duraport jako ostateczny.

Sekra Invos
źródło
0
df

Podsumuj wolne miejsce na dysku

Wyświetla ilość dostępnego miejsca na dysku.

du

Podsumuj użycie dysku.

Wyświetla ilość wykorzystanego miejsca na dysku.

Mitch
źródło
tak, ale w wyniku „df-Th” wykazało użycie 68G. dziś rano, gdy próbuję uzyskać dostęp do systemu ubuntu, nadal wyświetla komunikat „system działa w trybie niskiej grafiki”, ale kiedy sprawdzam użycie pamięci, polecenia „df” i „du” pokazują rozsądny wynik. Ale na czym polega problem z „trybem niskiej grafiki”?
user2068965
Spójrz na to .
Mitch
0

nic tak mylącego: Oto spojrzenie: =

1) du == Wykorzystanie dysku
Ile miejsca na dysku zajmują te pliki?

2) df == Wolne miejsce na dysku
Ile mamy wolnego miejsca na dysku?

Również dla systemu działa w trybie niskiej grafiki „ tutaj

Avani badheka
źródło
0

Zrobiłem
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

To dokładnie tłumaczyło dużą rozbieżność 21 GB, którą widziałem!
Ten plik to / zamień plik, jeśli 21 GB !!

użytkownik727981
źródło