Administracja systemem Podstawowy+ 45 min

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 lekcji

1. 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

W maszynie laboratoryjnej wykonaj 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.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie