Jaka jest różnica pomiędzy poleceniem df a poleceniem du w systemie Linux?
A. Polecenie du pokazuje wolne miejsce na partycjach, a df podaje rozmiar wskazanego katalogu.
B. Polecenie df służy do defragmentacji dysku, a du do jego formatowania.
C. Polecenie df pokazuje zajętość i wolne miejsce w systemach plików, a du podaje rozmiar plików i katalogów.
D. Oba polecenia działają identycznie, różnią się jedynie formatem wyświetlanych danych.
Polecenie df i du patrzą na przestrzeń dyskową z dwóch różnych stron, dlatego odpowiedź jest właściwa. df, czyli disk free, pokazuje wykorzystanie całych systemów plików: ile miejsca jest zajęte, ile wolne, jaki jest procent użycia oraz gdzie dany system plików jest zamontowany. W praktyce najczęściej używa się df -h, bo wynik jest wtedy czytelny dla człowieka, np. w GB albo MB. To jest dobre narzędzie, gdy administrator chce szybko sprawdzić, czy partycja /, /home albo /var nie jest prawie pełna. Z mojego doświadczenia szczególnie /var potrafi się zapchać logami i wtedy df od razu pokazuje problem.
Polecenie du, czyli disk usage, służy do sprawdzania rozmiaru konkretnych plików i katalogów. Przykładowo du -sh /var/log pokaże łączny rozmiar katalogu z logami, a du -h --max-depth=1 /home pozwoli znaleźć, który podkatalog zajmuje najwięcej miejsca. Dobra praktyka administracyjna jest taka: najpierw df sprawdza, który system plików ma problem z wolnym miejscem, a potem du pomaga znaleźć konkretny katalog lub pliki, które to miejsce zajmują. Warto też pamiętać, że wyniki df i du mogą się czasem różnić, np. gdy proces trzyma usunięty plik nadal otwarty. To już typowa rzecz przy diagnozowaniu serwerów Linux/Unix.
Polecenie du, czyli disk usage, służy do sprawdzania rozmiaru konkretnych plików i katalogów. Przykładowo du -sh /var/log pokaże łączny rozmiar katalogu z logami, a du -h --max-depth=1 /home pozwoli znaleźć, który podkatalog zajmuje najwięcej miejsca. Dobra praktyka administracyjna jest taka: najpierw df sprawdza, który system plików ma problem z wolnym miejscem, a potem du pomaga znaleźć konkretny katalog lub pliki, które to miejsce zajmują. Warto też pamiętać, że wyniki df i du mogą się czasem różnić, np. gdy proces trzyma usunięty plik nadal otwarty. To już typowa rzecz przy diagnozowaniu serwerów Linux/Unix.
W tym pytaniu łatwo pomylić poziom, na którym działają oba polecenia. df nie analizuje wskazanego katalogu pod kątem rozmiaru jego zawartości, tylko pokazuje stan systemów plików jako całości. Interesuje go punkt montowania, całkowita pojemność, zajęte miejsce, wolne miejsce i procent użycia. Dlatego df -h jest narzędziem do szybkiej oceny, czy dana partycja albo wolumen ma jeszcze zapas miejsca. Nie służy do sprawdzania, który katalog dokładnie zapełnił dysk.
du działa odwrotnie w tym sensie, że nie pokazuje ogólnego wolnego miejsca na partycji. Ono liczy użycie przestrzeni przez pliki i katalogi, zwykle rekurencyjnie. Gdy wpiszesz du -sh /home/user, dostajesz rozmiar tego konkretnego katalogu, a nie informację o całej partycji. Typowy błąd myślowy polega na tym, że oba polecenia kojarzą się z dyskiem i jednostkami typu MB lub GB, więc ktoś zakłada, że robią to samo. No nie do końca, różnica jest bardzo praktyczna.
Nieprawidłowe jest też kojarzenie df z defragmentacją albo du z formatowaniem. W Linuksie do formatowania systemów plików używa się narzędzi typu mkfs, a defragmentacja, jeśli w ogóle jest potrzebna, zależy od konkretnego systemu plików, np. ext4 czy btrfs, i używa się innych narzędzi. df oraz du są poleceniami diagnostyczno-informacyjnymi, bezpiecznymi przy standardowym użyciu, bo same z siebie nie modyfikują danych. Moim zdaniem warto zapamiętać prostą zasadę: df odpowiada na pytanie ile miejsca zostało na systemie plików, a du odpowiada na pytanie co zajmuje miejsce w katalogu.
du działa odwrotnie w tym sensie, że nie pokazuje ogólnego wolnego miejsca na partycji. Ono liczy użycie przestrzeni przez pliki i katalogi, zwykle rekurencyjnie. Gdy wpiszesz du -sh /home/user, dostajesz rozmiar tego konkretnego katalogu, a nie informację o całej partycji. Typowy błąd myślowy polega na tym, że oba polecenia kojarzą się z dyskiem i jednostkami typu MB lub GB, więc ktoś zakłada, że robią to samo. No nie do końca, różnica jest bardzo praktyczna.
Nieprawidłowe jest też kojarzenie df z defragmentacją albo du z formatowaniem. W Linuksie do formatowania systemów plików używa się narzędzi typu mkfs, a defragmentacja, jeśli w ogóle jest potrzebna, zależy od konkretnego systemu plików, np. ext4 czy btrfs, i używa się innych narzędzi. df oraz du są poleceniami diagnostyczno-informacyjnymi, bezpiecznymi przy standardowym użyciu, bo same z siebie nie modyfikują danych. Moim zdaniem warto zapamiętać prostą zasadę: df odpowiada na pytanie ile miejsca zostało na systemie plików, a du odpowiada na pytanie co zajmuje miejsce w katalogu.