df

Wyświetla wolne i zajęte miejsce na zamontowanych systemach plików.

df (od disk free) pokazuje, ile miejsca zostało, a ile już zjadły dane na zamontowanych systemach plików. To pierwsza komenda, którą odpalasz, gdy serwer zaczyna marudzić „no space left on device” albo gdy chcesz po prostu sprawdzić, czy partycja na logi nie pęka w szwach. Działa per system plików (a nie per katalog), więc patrzysz na całe woluminy: główny /, /home, zamontowane dyski sieciowe i tym podobne.

Składnia i najważniejsze opcje

Podstawowa składnia wygląda tak: df [OPCJE] [PLIK]. Jeśli podasz ścieżkę do pliku albo katalogu, df pokaże system plików, na którym ta ścieżka leży — przydatne, gdy nie pamiętasz, gdzie co jest zamontowane.

  • -h — rozmiary w czytelnej formie (K, M, G) w potęgach 1024; najczęściej używana flaga.
  • -H — to samo, ale w potęgach 1000 (jak liczą producenci dysków).
  • -T — dodaje kolumnę z typem systemu plików (ext4, xfs, tmpfs itd.). Uwaga: to wersja GNU/Linux.
  • -i — pokazuje zużycie i-węzłów (inode) zamiast bloków.
  • -a — uwzględnia też pseudo-systemy plików (np. /proc, /sys), normalnie pomijane.
  • -t TYP — w GNU ogranicza listę do systemów danego typu; -x TYP robi odwrotnie (wyklucza).
  • --total — dorzuca wiersz z sumą wszystkiego (tylko GNU).

Przykłady użycia

  • df -h — klasyk: zajętość wszystkich systemów plików w gigabajtach i procentach. To wpisujesz najczęściej.
  • df -h /var/log — sprawdza, na której partycji siedzą logi i ile tam jeszcze wolnego.
  • df -ih — pokazuje zużycie i-węzłów; ratuje, gdy dysk teoretycznie ma miejsce, a system i tak krzyczy „no space left”.
  • df -hT — to samo co df -h, ale z kolumną typu systemu plików (świetne do szybkiego namierzenia tmpfs).
  • df -h -x tmpfs -x devtmpfs — odsiewa szum z RAM-owych pseudo-dysków i zostawia tylko prawdziwe woluminy.

Częste błędy i pułapki

Najczęstsza pułapka: dysk pełny, choć df -h pokazuje wolne miejsce. Wtedy prawie zawsze skończyły się i-węzły — sprawdź df -i. Druga klasyka: mylenie df z du. df patrzy na system plików jako całość, a du liczy rozmiar konkretnych katalogów. Jeśli skasujesz duży plik, który wciąż trzyma otwarty jakiś proces, df nadal pokaże go jako zajęty (miejsce wróci dopiero po zamknięciu procesu) — to częsty „duch” na serwerach.

Uważaj też na różnice między systemami. Na Linuksie (GNU) -T dorzuca kolumnę z typem, a -t TYP filtruje po typie. Na macOS/BSD jest odwrotnie i myląco: tam -T TYP filtruje po typie, a --total w ogóle nie istnieje. Skrypt napisany pod Linuksa potrafi się więc wysypać na Macu.

Powiązane komendy: du (rozmiar katalogów), lsblk i mount (urządzenia i punkty montowania), findmnt oraz ncdu (interaktywny podgląd zajętości).