Sprawdzanie wolnego miejsca Linux – jak używać komendy df i du

Wprowadzenie
Sprawdzanie wolnego miejsca Linux to jeden z podstawowych nawyków, który pozwala uniknąć przykrych niespodzianek w postaci przepełnionych dysków. Kiedy liczba plików, logów czy baz danych rośnie, może się okazać, że system zaczyna zwalniać lub przestaje działać stabilnie. Dobra wiadomość: regularna kontrola przestrzeni dyskowej nie jest trudna i obejmuje kilka prostych poleceń, z których najpopularniejsze to df i du. W tym poradniku poznasz dokładnie, jak ich używać, jak interpretować wyniki i kiedy sięgnąć po inne narzędzia. Dzięki temu unikniesz kłopotów związanych z brakiem miejsca i zapewnisz płynne działanie swojego systemu.
Znaczenie kontroli wolnego miejsca
Zanim przejdziemy do poleceń, warto zrozumieć, dlaczego w ogóle warto monitorować przestrzeń dyskową. Zbyt mało miejsca może prowadzić do opóźnień w działaniu aplikacji, problemów z zapisem plików, a w skrajnych sytuacjach do utraty danych lub zatrzymania usług.
- Wydajność systemu: Gdy dysk jest zapełniony, aplikacje mogą działać wolniej. W systemach Linux przeładowany dysk potrafi generować błędy przy próbie zapisu nowych danych.
- Stabilność usług: Jeśli hostujesz strony, bazy danych czy aplikacje na serwerze, brak wolnego miejsca może prowadzić do przerwania usług.
- Długofalowe bezpieczeństwo: Regularna kontrola przestrzeni pozwala zapobiec przeładowaniu logów czy baz danych. Dzięki temu unikniesz nagłych awarii związanych z niewystarczającą ilością miejsca.
- Łatwiejsze zarządzanie: Wiedza o tym, które katalogi są najbardziej rozrastające się, pozwala ci w porę zareagować i usunąć niepotrzebne pliki bądź przenieść je w inne miejsce.
Dobra praktyka w administracji systemami Linux to częste monitorowanie dysku oraz szybkie reagowanie na pojawiające się sygnały o malejącej ilości wolnej przestrzeni.
Polecenie df w praktyce
Jednym z najpopularniejszych sposobów na sprawdzanie wolnego miejsca w systemie Linux jest polecenie df (skrót od disk-free). Narzędzie to pojawiło się jeszcze w latach 90. i nadal stanowi podstawowy element zestawu każdego administratora.
Najważniejsze opcje df
- df bez żadnych opcji: Wyświetla ogólny podgląd dysków podłączonych do systemu. Informuje o całkowitej pojemności, zużytej przestrzeni, wolnej przestrzeni oraz miejscu montowania (mount point).
- df -h: Wyświetla te same dane w tzw. formacie human-readable (czytelniejszym dla człowieka). Zamiast bajtów pojawiają się kB, MB oraz GB.
- df -T: Oprócz informacji o zajętości wyświetla również typ używanego systemu plików (np. ext4, xfs, btrfs).
Przykładowe użycie df
Załóżmy, że wpisujesz:
df -h
Możesz wtedy zobaczyć w terminalu tabelę z kolumnami:
- Filesystem (np. /dev/sda1): Nazwa urządzenia dyskowego.
- Size (np. 50G): Całkowita pojemność.
- Used (np. 10G): Ile miejsca jest już zajęte.
- Avail (np. 38G): Ile miejsca jest jeszcze wolne.
- Use% (np. 21%): Jaki procent dysku jest wykorzystany.
- Mounted on (np. / lub /home): Punkt montowania, czyli gdzie w drzewie katalogów znajduje się dany dysk bądź partycja.
Takie zestawienie wystarczy, by w kilka sekund dowiedzieć się, które z dysków są najbardziej zapełnione i czy trzeba zacząć pilnie zwalniać miejsce.
Korzystanie z polecenia du
Drugie niezwykle ważne narzędzie do sprawdzania wolnego miejsca Linux to du (disk usage). W odróżnieniu od df, które pokazuje stan poszczególnych partycji, du skupia się na katalogach i plikach. Możesz dzięki niemu odkryć, które foldery zajmują najwięcej przestrzeni i z czego wynika zapełnienie dysku.
Podstawy du
- du (bez opcji): Wyświetla rozmiar bieżącego katalogu w kilobajtach, łącznie ze wszystkimi podfolderami.
- du -h: Podobnie jak df -h, pokazuje dane w formacie przyjaznym człowiekowi (kB, MB, GB).
- du -a: Zestawia rozmiar każdego pliku, a nie tylko katalogów.
- du -s: Podaje podsumowanie łącznego rozmiaru określonego katalogu, bez pokazywania szczegółów każdego pliku.
Dzięki du możesz szybko przejrzeć zarówno główne katalogi systemu, jak i te, w których najczęściej gromadzą się duże pliki (np. /var/log, /home).
Jak znaleźć największe katalogi
Jeśli szukasz katalogów, które zajmują najwięcej przestrzeni, pomocne jest polecenie:
du -h --max-depth=1 /ścieżka/do/katalogu
Dzięki --max-depth=1 ograniczysz się do jednego poziomu podkatalogów. Otrzymasz listę folderów z ich całkowitym rozmiarem. Stamtąd możesz dalej wchodzić w podkatalogi, by zlokalizować najbardziej pamięciożerny element.
Przykładowo, jeżeli okaże się, że w /home/username/Downloads leży kilka obrazów ISO, wtedy wiesz, że to właśnie ten folder zajmuje większość przestrzeni. Możesz wtedy zdecydować, czy potrzebujesz tych plików, czy też warto je przenieść w inne miejsce lub usunąć.
Inne przydatne narzędzia
Choć df i du stanowią trzon sprawdzania wolnego miejsca w Linux, istnieje kilka innych narzędzi, które mogą ułatwić ci życie. W sytuacjach wymagających szybkiego podglądu, graficznego interfejsu czy bardziej kolorowego wyświetlania danych – sprawdź poniższe polecenia.
pydf
pydf to skrypt w Pythonie, który działa podobnie do df, ale wyświetla dane w kolorowej, bardziej czytelnej formie. Jego użycie jest proste:
pydf
Zobaczysz tabelę z informacjami o przestrzeni dyskowej, podobną do df, lecz oznaczoną kolorem, który ułatwia szybkie namierzenie zapełnionych dysków. To przydatne, gdy cenisz sobie przejrzystość w terminalu.
lsblk
lsblk wyświetla informacje o urządzeniach blokowych (np. dyskach twardych, partycjach). Choć nie służy bezpośrednio do raportowania wolnego miejsca, ułatwia ci zrozumienie struktury dysków:
- Nazwa urządzenia (np. sda, sdb).
- Rozmiar (Size).
- Typ (disk, part).
- Punkt montowania (MOUNTPOINT).
Dzięki lsblk możesz szybciej ustalić, gdzie dokładnie zamontowana jest konkretna partycja i jaki ma rozmiar. Później możesz użyć df, żeby sprawdzić, ile tam wolnego miejsca pozostało.
ncdu
ncdu, zwane NCurses Disk Usage, daje ci interaktywny widok wykorzystania dysku. Kiedy je uruchomisz:
ncdu
Zobaczysz podobny do du spis katalogów, ale z możliwością nawigowania po nich z poziomu terminalu za pomocą klawiszy strzałek. Różnica polega na tym, że w ncdu możesz wchodzić w katalogi i natychmiast widzieć, które pliki zajmują najwięcej miejsca. Jeśli chcesz szybko usunąć duże pliki, wystarczy zaznaczyć je w ncdu i wcisnąć klawisz D, by usunąć wybrane elementy (zachowaj ostrożność!).
Praktyczne wskazówki admina
Kiedy już wiesz, jak korzystać z df, du i innych narzędzi, pora na kilka praktycznych zaleceń, które pomogą ci w codziennej pracy z Linuxem.
- Badaj logi regularnie: Wiele systemów gromadzi logi w /var/log, co potrafi szybko zapełnić dysk. Przeglądaj je co jakiś czas i usuwaj zbędne pliki.
- Ustaw alerty: Jeśli masz dostęp do systemu monitorowania (np. Nagios, Zabbix), możesz włączyć powiadomienia o przekroczeniu określonego procentu zajętości dysku. To pozwala natychmiast zareagować, gdy miejsce zbliża się do wyczerpania.
- Rozważ osobne partycje: Używanie oddzielnych partycji dla /home, /var czy /tmp ułatwia kontrolę nad wypełnianiem się danych sekcji. W razie problemu na jednej partycji inne pozostają nietknięte.
- Kompresuj i archiwizuj: Gdy posiadasz duże pliki, które nie są często używane, rozważ ich spakowanie (np. tar, gzip) i ewentualne przeniesienie w inne miejsce.
- Planuj upgrade dysków: Jeśli widzisz, że stale rośnie zapotrzebowanie na miejsce, lepiej rozważyć rozbudowę macierzy dyskowej lub dokupić przestrzeń w chmurze, niż czekać na krytyczny moment.
Synchronizacja i automatyzacja
Dobra wiadomość: zamiast co chwilę wpisywać polecenia ręcznie, możesz łatwo zautomatyzować kontrolę przestrzeni. Nawet podstawowy skrypt Bash potrafi uruchamiać df i du w regularnych odstępach i wysyłać ci e-mail z raportem.
- Cron: Narzędzie do harmonogramowania zadań w systemie Linux. Możesz ustawić codzienne lub cotygodniowe uruchamianie poleceń sprawdzających wolne miejsce.
- Skrypty raportowania: Przykładowy skrypt może wyglądać tak:
#!/bin/bash # Prosty skrypt monitorujący wolne miejsce MAIL="twojemail@domena.pl" PROGNOZA=$(df -h) echo "Raport z df -h" | mail -s "Raport zużycia dysku" -a "From:SysAdmin<root@twojastrona.pl>" $MAIL <<EOF $PROGNOZA EOF
Dzięki temu codziennie dostaniesz na skrzynkę aktualne dane o stanie dysków.
- Zaawansowane narzędzia monitorujące: Jeśli zarządzasz większą infrastrukturą, warto rozważyć instalację systemów takich jak Nagios, Zabbix czy Prometheus. Pozwolą ci zbierać dane z wielu serwerów w jednym miejscu oraz wyświetlać szczegółowe statystyki.
Przydatne polecenia do uzupełnienia
Poza df i du znajdziesz w systemie Linux garść innych komend, które w pewnych sytuacjach będą równie pomocne:
- fdisk -l: Wyświetla informacje o podziale dysku na partycje, co może się przydać przy planowaniu lub diagnostyce przestrzeni dyskowej.
- ls -al: Wyświetla szczegóły plików w danym katalogu, w tym ich rozmiar. Nie jest tak kompleksowe jak du, ale pozwala na szybki rzut oka.
- stat : Pokazuje rozmiar i inne metadane pliku lub katalogu, np. datę ostatniej modyfikacji.
- parted: Kolejne narzędzie do zarządzania partycjami, pozwala przeglądać i modyfikować układ partycji w bardziej przyjazny sposób niż fdisk.
Jak czytać wyniki i wyciągać wnioski
Korzystając z df i du, zwracaj uwagę nie tylko na liczby, ale i na ogólny trend. Jeśli widzisz, że z tygodnia na tydzień wolnego miejsca ubywa w zastraszającym tempie, przejrzyj:
- Największe katalogi (np. /var/log, /var/lib/mysql, /home).
- Ewentualne kopie zapasowe, które zalegają w systemie.
- Pliki tymczasowe tworzone przez różne procesy i aplikacje, szczególnie w /tmp.
Czasem okazuje się, że jeden duży plik (np. stary backup bazy danych) jest głównym sprawcą problemu. Innym razem masz do czynienia z tysiącami drobnych plików logów. W każdym przypadku przyda się metodyczne podejście: uruchamiasz du, sprawdzasz największe foldery i krok po kroku docierasz do źródła.
Zarządzanie przestrzenią w różnych systemach plików
Warto pamiętać, że różne systemy plików (ext4, xfs, btrfs) mogą w nieco odmienny sposób raportować przestrzeń. W systemie plików ext4 czasem występuje rezerwa na potrzeby roota (np. 5 procent). Jeśli dysk jest blisko zapełnienia, df może wskazać, że wolne jest np. 1 GB, a faktycznie część tej przestrzeni jest zarezerwowana dla działań administracyjnych.
- ext4: Popularny, stabilny system plików. Często stosuje się rezerwę dla konta root. Dzięki temu, nawet przy dużej zajętości, administrator wciąż może wykonać niezbędne operacje naprawcze.
- xfs: Często używany w środowiskach serwerowych. Bardzo dobrze radzi sobie z dużymi wolumenami i dynamicznymi partycjami.
- btrfs: Nowocześniejszy system plików wspierający zaawansowane funkcje, takie jak migawki (snapshots). Jednak raportowanie przestrzeni w btrfs może być mniej intuicyjne, zwłaszcza przy wielokrotnych migawkach.
Dobra praktyka to znajomość systemu plików, na którym pracujesz, i dopasowanie metod monitorowania do jego specyfiki. Jeśli używasz btrfs, upewnij się, że wiesz, ile przestrzeni zajmują migawki i jak je najskuteczniej usuwać bądź przenosić.
Rozszerzanie i reorganizacja przestrzeni
Gdy zauważysz, że twoja rozmiar dysku w Linux ciągle się kurczy, masz kilka podstawowych opcji:
- Dodanie nowego dysku: Najprostszy sposób na zwiększenie całkowitej pojemności. Po podłączeniu dysku i utworzeniu partycji zamontuj go np. w /mnt/nowydysk.
- Równoważenie danych: Jeśli masz kilka partycji lub dysków, być może wystarczy przenieść część danych z zapełnionego wolumenu na ten, który jest mniej używany.
- Skompresowanie plików: W przypadku rzadko używanych danych, archiwizacja (tar) i kompresja (gzip, bzip2) mogą zaoszczędzić sporo miejsca.
- Usuwanie duplikatów: Często w katalogach użytkowników pojawiają się powielone treści. Specjalistyczne narzędzia do wyszukiwania duplikatów pomogą ci wyeliminować niepotrzebne kopie.
Jak unikać krytycznych sytuacji
Dobry administrator Linux stara się zapobiegać sytuacjom, w których nagle brakuje miejsca. Poniżej kilka praktyk zapobiegawczych:
- Ustal harmonogram automatycznych raportów df/du. Dzięki temu wcześniej wykryjesz niepokojące tendencje.
- Zadbaj o rotację logów: Systemy logrotate automatycznie usuwają lub archiwizują stare logi.
- Monitoruj wolumeny w chmurze: Jeśli korzystasz z usług typu AWS, GCP czy Azure, pamiętaj o kontrolowaniu przydziału (quota) oraz o tym, że rozmiar wolumenów można często dość łatwo zwiększyć.
Najczęstsze błędy przy sprawdzaniu wolnego miejsca
Choć sprawdzanie wolnego miejsca w Linux brzmi banalnie, łatwo popełnić kilka typowych błędów:
- Brak opcji -h: Bez formatu human-readable wyniki df i du mogą być trudne do szybkiej interpretacji. Łatwo wtedy przeoczyć, że 1048576K to niemal 1GB.
- Zapominanie o folderach montowanych zdalnie: Jeśli w systemie masz zamontowane zasoby sieciowe (np. NFS, SMB), df je również pokaże. Warto zwrócić uwagę, czy chodzi o lokalny dysk, czy o zdalny zasób.
- Użycie du w katalogu, w którym nie masz uprawnień: W wielu folderach możesz zobaczyć komunikat o braku uprawnień. Aby uzyskać pełny obraz, uruchom du z konta root (ale rób to ostrożnie!).
- Omyłkowe usunięcie plików systemowych: Jeżeli z du dowiesz się, że np. katalog /usr/lib ma ogromny rozmiar, nie usuwaj plików bez przemyślenia. Możesz w ten sposób zepsuć ważne pakiety i narazić system na poważne problemy.
Podsumowanie i następny krok
Teraz wiesz, że sprawdzanie wolnego miejsca Linux można przeprowadzić za pomocą kilku prostych i skutecznych poleceń. df daje ci podgląd wolumenów i partycji, du zagląda do katalogów, a pydf, lsblk czy ncdu mogą dodatkowo uprościć pracę. Jeśli dopiero zaczynasz swoją przygodę, najlepiej przetestuj każde z tych narzędzi w bezpiecznym środowisku (np. na maszynie wirtualnej). Następnie wprowadź regularne przeglądy stanu dysku, ustaw alerty i automatyczne raportowanie. Dzięki takiemu podejściu unikniesz krytycznych sytuacji, w których nagle zabraknie miejsca, a system przestanie działać stabilnie.
Kolejny krok to wdrożenie zdobytej wiedzy w praktyce. Zapisz najważniejsze polecenia, załóż harmonogram w cronie, a jeśli zarządzasz większą infrastrukturą, zastanów się nad przydatnymi narzędziami monitorującymi. Wkrótce sprawdzanie wolnego miejsca stanie się dla ciebie tak naturalne, jak oddychanie, a twoje systemy będą działać bezbłędnie przez długi czas. Powodzenia!