Jak sprawdzić zajętość dysku linux? Praktyczny poradnik od df do ncdu

Osoba korzysta z terminala systemu Linux na laptopie przy biurku

Gdy komputer zwalnia albo system zaczyna wyrzucać błędy zapisu, pierwsze pytanie brzmi zwykle nie „co usunąć”, tylko gdzie zniknęło miejsce. Właśnie dlatego warto wiedzieć, jak sprawdzić zajętość dysku linux w sposób szybki, bezpieczny i możliwy do powtórzenia.

Najpierw diagnoza całej partycji, potem szukanie winnego katalogu, a dopiero na końcu czyszczenie. Taka kolejność oszczędza czas i chroni przed przypadkowym skasowaniem danych, które tylko wyglądały na zbędne.

Narzędzie Co mierzy Kiedy używać Przykład
df Zajętość całego systemu plików i punktu montowania Gdy trzeba szybko sprawdzić, czy partycja jest pełna df -hT /
du Rozmiar katalogów i plików we wskazanej ścieżce Gdy trzeba znaleźć konkretny folder zapychający dysk du -sh /var/log
ncdu Interaktywną analizę zużycia miejsca w terminalu Gdy chcesz wygodnie przejrzeć strukturę katalogów ncdu /

Jak sprawdzić zajętość dysku w systemie Linux za pomocą polecenia df

Jeśli potrzebujesz odpowiedzi w kilka sekund, zacznij od df. To polecenie pokazuje zajętość systemu plików, czyli całej partycji albo woluminu podpiętego pod konkretny punkt montowania. Dzięki temu od razu widzisz, czy problem dotyczy na przykład /, /home, /var albo osobnego dysku na dane.

df -h
df -hT /
df -h /home
df -h /var

Flaga -h zamienia surowe bajty na czytelne jednostki, takie jak MB, GB czy TB. W praktyce to najwygodniejszy wariant, bo szybciej widać, czy wolnego miejsca zostało jeszcze sporo, czy partycja jest już prawie pełna. Z kolei -T pokazuje typ systemu plików, na przykład ext4, xfs albo btrfs. To ważne, bo różne systemy plików zachowują się trochę inaczej przy pełnym dysku i przy odzyskiwaniu miejsca.

Wynik df trzeba czytać całościowo. Kolumna Filesystem mówi, jaki nośnik lub wolumin jest sprawdzany. Size pokazuje pojemność, Used zajęte miejsce, Avail wolne miejsce, Use% procent wykorzystania, a Mounted on punkt montowania. Jeśli widzisz 100% przy /, a osobno 20% przy /home, to problem jest na konkretnej partycji, nie „w całym Linuksie” jako takim.

To rozróżnienie jest kluczowe. df mierzy stan nośnika, a nie sumę rozmiarów plików w katalogu. Dlatego może pokazać pełną partycję, nawet jeśli pojedynczy katalog nie wygląda podejrzanie. W takiej sytuacji przechodzisz do du, bo dopiero ono pozwala wskazać winnego.

Analiza rozmiaru katalogów czyli jak działa komenda du

du służy do sprawdzania, ile miejsca zajmuje katalog lub wybrana ścieżka. To narzędzie odpowiada na pytanie: który folder rośnie najbardziej? Jeśli df pokazuje brak miejsca, ale nie wiadomo dlaczego, właśnie tutaj zaczyna się właściwa diagnostyka.

du -sh /var/log
du -sh /home/twoj_uzytkownik/Pobrane
du -h --max-depth=1 /var | sort -rh
du -xhd1 / | sort -rh

Flaga -s daje podsumowanie dla wskazanej ścieżki, więc zamiast wielu linii dostajesz jedną, konkretną wartość. -h znów poprawia czytelność, a –max-depth=1 ogranicza zejście tylko do pierwszego poziomu podkatalogów. To bardzo praktyczne, bo pozwala szybko zobaczyć, czy największym problemem jest na przykład /var, /home, czy może tylko jeden z katalogów użytkownika.

W połączeniu z sort -rh wynik da się ułożyć od największego do najmniejszego. Dzięki temu nie przeszukujesz wszystkiego ręcznie. Zamiast zgadywać, gdzie zniknęły gigabajty, dostajesz uporządkowaną listę i możesz zawęzić obszar do konkretnej gałęzi drzewa katalogów.

Praktyczna wskazówka: jeśli df pokazuje pełny dysk, a du nie wskazuje nic oczywistego, nie zaczynaj od bezmyślnego sprzątania. Najpierw sprawdź df -i i lsof +L1 — bardzo często problemem są i-węzły albo plik usunięty, ale nadal otwarty przez proces.

Szybkie lokalizowanie największych plików i folderów w terminalu

Jeśli chcesz zejść poziom niżej, połącz du z sortowaniem. Taki zestaw jest wygodny zwłaszcza wtedy, gdy katalog ma wiele podkatalogów i trzeba szybko wyłapać pożeracza miejsca. To podejście sprawdza się zarówno na laptopie, jak i na VPS-ie, gdzie liczy się czas i prostota diagnostyki.

du -h --max-depth=1 /var | sort -rh | head
du -h --max-depth=1 /home | sort -rh | head
du -xhd1 / | sort -rh | head

Pierwsze polecenie pokaże największe elementy w /var, drugie w katalogach domowych, a trzecie ograniczy analizę do jednej partycji systemowej. Taki wariant bywa pomocny na maszynach z wieloma punktami montowania, bo nie miesza danych z osobnych woluminów. Jeśli nie użyjesz ograniczenia -x, możesz przypadkiem analizować również zamontowane inne systemy plików i wynik stanie się mniej czytelny.

Wykorzystanie polecenia find do szukania gigantycznych plików

Duże katalogi to jedno, ale czasem problemem jest pojedynczy plik ukryty głęboko w strukturze. Wtedy najlepiej działa find z parametrem -size. To dobre narzędzie, gdy szukasz logu, archiwum, obrazu dysku albo tymczasowego pliku, który urósł do niebezpiecznego rozmiaru.

find / -type f -size +100M -print 2>/dev/null
find / -type f -size +1G -print 2>/dev/null
find /var -type f -size +100M -printf '%s %p
' 2>/dev/null | sort -nr | head

Pierwsze dwa polecenia znajdują pliki większe niż 100 MB albo 1 GB. Trzecie pokazuje rozmiar w bajtach i ścieżkę, a potem sortuje wyniki od największego. W praktyce warto zaczynać od bardziej konkretnego katalogu, na przykład /var lub /home, zamiast skanować cały system od zera. Na komputerze z dużą liczbą plików pełne przeszukiwanie może trwać długo, a uprawnienia do części katalogów i tak zwrócą błędy, dlatego 2>/dev/null porządkuje wynik.

Interaktywne sprawdzanie zajętości dysku za pomocą ncdu

Jeśli chcesz szybciej dojść do źródła problemu, ncdu jest zwykle najlepszym wyborem. To interaktywne narzędzie do analizy zużycia miejsca w terminalu, które pokazuje katalogi w wygodnej, nawigowalnej formie. Zamiast czytać długie wyjście komend, poruszasz się po drzewie katalogów strzałkami i od razu widzisz, co zajmuje najwięcej.

# Debian / Ubuntu
sudo apt install ncdu

# Fedora
sudo dnf install ncdu

# Arch
sudo pacman -S ncdu

Najbezpieczniej uruchomić je od razu na interesującej ścieżce, na przykład sudo ncdu /var albo ncdu ~/Pobrane. Root daje pełniejszy obraz dysku, ale jeśli nie potrzebujesz pełnych uprawnień, zacznij od własnego katalogu użytkownika. W interfejsie poruszasz się strzałkami, wchodzisz do katalogów klawiszem Enter, a wracasz poziom wyżej Backspace. To naprawdę przyspiesza diagnostykę, zwłaszcza gdy trzeba ocenić kilka poziomów drzewa katalogów po kolei.

Warto pamiętać, że ncdu pozwala także usuwać pliki, ale przy pierwszym przejściu lepiej traktować je wyłącznie jako narzędzie do analizy. Gdy pracujesz na ważnym systemie, najpierw potwierdź wynik w df i du, a dopiero później podejmuj decyzję o kasowaniu. Takie podejście jest wolniejsze o kilka minut, ale dużo bezpieczniejsze.

Brak miejsca na dysku a wolne gigabajty czyli problem z i-węzłami (inodes)

Zdarza się, że system zgłasza brak miejsca, chociaż df -h pokazuje jeszcze wolne gigabajty. Wtedy warto sprawdzić i-węzły, czyli inodes. To specjalna tabela metadanych systemu plików, w której każdy plik dostaje swój wpis. Nawet pusty plik zużywa inode, więc jeśli ich zabraknie, nie utworzysz nowych plików, mimo że przestrzeń na dane nadal istnieje.

df -i
df -i /var
df -i /home

W wyniku zobaczysz kolumny podobne do tych z df, ale dotyczące właśnie liczby i-węzłów. Jeśli IUse% jest bliskie 100%, a IFree spada do zera, masz problem z liczbą plików, a nie z ich objętością. To częsty scenariusz przy katalogach pełnych małych plików, cache, skrzynek pocztowych, repozytoriów z ogromną liczbą drobnych elementów albo rozpakowanych zależności aplikacji.

Na ext4 i wielu innych systemach plików liczba inode jest ustalana przy tworzeniu partycji. Tego nie naprawia się zwykłym czyszczeniem jednego dużego pliku. Trzeba usunąć dużą liczbę małych obiektów albo przenieść dane na inny system plików. Jeśli problem dotyczy krytycznego serwera, rozsądniej jest zrobić kopię zapasową i skonsultować zmianę z administratorem niż improwizować pod presją.

Dlaczego usunięcie plików nie zwolniło miejsca? Procesy i lsof

To jedna z najbardziej mylących sytuacji: plik został skasowany, a miejsce wciąż się nie zwalnia. Powód bywa prosty — proces nadal trzyma otwarty deskryptor do usuniętego pliku. W Linuksie samo usunięcie nazwy z katalogu nie wystarcza, jeśli aplikacja dalej zapisuje do tego pliku. Przestrzeń zwolni się dopiero wtedy, gdy ostatni proces zamknie uchwyt.

lsof | grep deleted
lsof +L1

Polecenie lsof | grep deleted pozwala znaleźć otwarte, ale już usunięte pliki. Wygodniejszym skrótem jest często lsof +L1, bo pokazuje pliki z link count równym 0 lub 1, czyli właśnie te, które przestały istnieć w katalogu, ale nadal zajmują miejsce. Zwykle winowajcą jest log albo plik tymczasowy trzymany przez usługę w tle.

Najbezpieczniejszym rozwiązaniem jest restart usługi lub procesu, który trzyma uchwyt. Jeśli wiesz, co to za aplikacja, zrób kontrolowany restart zamiast siłowego zamykania wszystkiego. W środowisku produkcyjnym albo na ważnym VPS-ie warto najpierw sprawdzić, czy zatrzymanie usługi nie przerwie działania innego elementu systemu. To dokładnie ten moment, w którym diagnostyka jest ważniejsza niż szybkie, ale ryzykowne działanie.

Jak bezpiecznie zwolnić miejsce na dysku w systemie Linux

Po diagnozie przychodzi czas na porządki, ale nadal z głową. Bezpieczne czyszczenie systemu polega na usuwaniu rzeczy zbędnych i odwracalnych: logów, cache pakietów, starych zależności i zawartości kosza. Nie zaczynaj od rm -rf w losowym katalogu, bo to najszybsza droga do problemów większych niż brak miejsca.

Czyszczenie logów systemowych i pamięci podręcznej pakietów

Na komputerach z systemd dobrym punktem startu są logi dziennika. Zanim je ograniczysz, sprawdź, ile naprawdę zajmują:

journalctl --disk-usage
sudo journalctl --vacuum-size=500M
sudo journalctl --vacuum-time=7d

Pierwsze polecenie pokazuje bieżące zużycie miejsca, drugie zostawia logi do wskazanego limitu, a trzecie usuwa wpisy starsze niż podany okres. To bezpieczniejsze niż ręczne kasowanie plików z katalogów systemowych, bo narzędzie samo pilnuje spójności.

Jeśli używasz systemu opartego na Debianie lub Ubuntu, kolejnym krokiem jest cache pakietów i stare zależności:

sudo apt clean
sudo apt autoremove --purge

apt clean usuwa pobrane archiwa instalacyjne, a autoremove czyści zbędne pakiety pozostawione po aktualizacjach. To nie jest agresywne sprzątanie, tylko standardowa konserwacja. Jeśli nadal brakuje miejsca, sprawdź też kosz użytkownika. Na wielu pulpitach duże pliki trafiają do ~/.local/share/Trash i formalnie znikają z widoku, ale nadal zajmują miejsce na partycji domowej.

W praktyce najlepsza sekwencja wygląda tak: najpierw df -h i df -i, potem du lub ncdu, następnie lsof, a dopiero na końcu kontrolowane czyszczenie. Jeśli po tych krokach problem nadal wraca, zwłaszcza na systemie z ważnymi danymi, zrób kopię zapasową i zatrzymaj się przed kolejną ingerencją. Gdy już wiesz, jak sprawdzić zajętość dysku linux, znacznie łatwiej odróżnić zwykły bałagan od realnej awarii miejsca na partycji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

morenova.com.pl
Przegląd prywatności

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.