Miejsce na dysku i porządkowanie systemu: df, du, cache i logi
Nauczysz się znajdować źródło zajętego miejsca i bezpiecznie porządkować cache pakietów oraz logi bez przypadkowego usuwania danych.
Wróć do listy lekcji1. Krótka teoria
Brak miejsca na dysku może zatrzymać aktualizacje, zapis logów i działanie usług. df pokazuje wykorzystanie całych systemów plików, natomiast du oblicza rozmiar wskazanych katalogów i plików. To różne perspektywy: najpierw używa się df -h, aby znaleźć zapełniony system plików, a potem du, aby zawęzić źródło problemu. Opcja -x pomaga pozostać w jednym systemie plików. Warto sprawdzić także inode przez df -i, ponieważ ogromna liczba małych plików może uniemożliwić tworzenie nowych danych mimo wolnych bajtów. Typowymi źródłami wzrostu są logi, cache menedżera pakietów, dane aplikacji i pliki tymczasowe. W Rocky Linux cache DNF można analizować i czyścić poleceniem dnf clean. Rozmiar journala sprawdza journalctl --disk-usage, a jego kontrolowane ograniczenie umożliwia journalctl --vacuum-size lub --vacuum-time. Czyszczenie musi następować dopiero po identyfikacji danych i ocenie ich znaczenia. Nie należy usuwać losowo zawartości /var, aktywnych logów ani plików należących do bazy danych. Po sprzątaniu trzeba ponownie uruchomić pomiar i potwierdzić efekt.
2. Przykłady komend
df -h
Pokazuje zajętość systemów plików w czytelnych jednostkach.
$ df -h
df -i
Pokazuje wykorzystanie inode w systemach plików.
$ df -i
sudo du -xhd 1 /var
Porównuje katalogi pierwszego poziomu w /var bez przechodzenia na inne systemy plików.
$ sudo du -xhd 1 /var
sudo du -xah /var/log | sort -h | tail -n 20
Pokazuje największe elementy w /var/log.
$ sudo du -xah /var/log | sort -h | tail -n 20
sudo dnf clean packages
Usuwa pobrane pakiety z cache DNF.
$ sudo dnf clean packages
sudo dnf clean all
Czyści pakiety i metadane cache DNF, które mogą zostać pobrane ponownie.
$ sudo dnf clean all
journalctl --disk-usage
Pokazuje miejsce zajmowane przez pliki journala.
$ journalctl --disk-usage
sudo journalctl --vacuum-time=14d
Usuwa zarchiwizowane wpisy journala starsze niż 14 dni.
$ sudo journalctl --vacuum-time=14d
sudo journalctl --vacuum-size=500M
Ogranicza zarchiwizowany journal do około 500 MB.
$ sudo journalctl --vacuum-size=500M
3. Zadanie praktyczne
df -h i df -i. Wskaż system plików o najwyższym użyciu procentowym oraz sprawdź, czy problem dotyczy bajtów czy inode. Następnie uruchom sudo du -xhd 1 /var i zawęź analizę do największego katalogu, nie usuwając żadnych danych. Sprawdź journalctl --disk-usage oraz rozmiary elementów w /var/cache/dnf. Zaproponuj najbezpieczniejszą akcję porządkową. Jeśli środowisko jest przeznaczone do ćwiczeń, wyczyść wyłącznie cache pakietów przez sudo dnf clean packages, a potem ponownie wykonaj pomiary i porównaj wynik.
4. Typowe błędy
- Używanie df i du zamiennie bez rozumienia, co mierzą.
- Usuwanie plików przed ustaleniem, który system plików jest zapełniony.
- Pomijanie wykorzystania inode pokazywanego przez df -i.
- Uruchamianie du od katalogu / bez ograniczenia systemu plików i głębokości.
- Kasowanie całego /var/log zamiast użycia rotacji i kontrolowanego vacuum.
- Traktowanie cache, logów i danych aplikacji jako równie bezpiecznych do usunięcia.
- Brak ponownego pomiaru po wykonaniu porządkowania.
5. Podsumowanie
Najpierw użyj df -h i df -i, aby określić rodzaj i miejsce problemu. Następnie zawężaj analizę przez du -xhd 1. Cache DNF można odtworzyć, ale dane aplikacji wymagają szczególnej ochrony. Journal ograniczaj kontrolowanymi opcjami vacuum. Każde sprzątanie powinno kończyć się ponownym pomiarem.