Linux

Brak miejsca na dysku w Linuxie — df, du i bezpieczna diagnoza

Jak znaleźć duże katalogi i sprawdzić inode w Linuxie. Dlaczego df i du pokazują różne wyniki i czego nie usuwać z serwera w ciemno.

KRÓTKA ODPOWIEDŹ

Zacznij od df -h i df -i, aby odróżnić pełny system plików od wyczerpanych inode. Dopiero potem użyj du dla konkretnego punktu montowania. Nie usuwaj katalogów bazy ani wolumenów Dockera bez rozpoznania ich roli.

Najpierw ustal, który system plików jest pełny

Błąd zapisu nie musi oznaczać, że cały serwer nie ma miejsca. Osobny /var, katalog kopii lub partycja użytkownika mogą być pełne przy dużym zapasie w innym miejscu. Uruchom: ``bash df -h df -i findmnt `` Pierwsza komenda pokazuje zajętość, druga liczbę inode, a trzecia montowania. Zwróć uwagę na docelowy katalog aplikacji. Duża liczba drobnych plików potrafi zużyć inode, mimo że nadal są wolne gigabajty. Na hostingu dodatkowo mogą obowiązywać limity konta.

Zawężaj wyszukiwanie katalog po katalogu

Na systemie z GNU du sprawdź wybrany obszar: ``bash sudo du -xhd1 /var 2>/dev/null | sort -h sudo du -xhd1 /var/log 2>/dev/null | sort -h `` Opcja -x ogranicza przechodzenie na inne systemy plików. Nie uruchamiaj bez potrzeby skanowania całego serwera wielokrotnie w czasie szczytu. Du może być kosztowne na katalogach z ogromną liczbą plików. Przekierowanie błędów poprawia czytelność wyniku, ale przy nieoczekiwanych brakach powtórz badanie bez niego, aby zobaczyć odmowę dostępu.

Przykładowe kategorie problemów to stare archiwa, logi bez retencji, pliki tymczasowe i media. Każda wymaga innej decyzji. Kopię przenieś dopiero po sprawdzeniu, że istnieje kompletna wersja w drugim miejscu. Logów nie kasuj, jeśli są potrzebne do bieżącego incydentu.

Dlaczego df i du mogą się nie zgadzać?

Df mierzy stan systemu plików, a du przechodzi przez widoczne pliki. Różnicę mogą powodować pliki usunięte, ale wciąż otwarte przez proces, snapshoty, zarezerwowane bloki, brak uprawnień albo dane ukryte pod punktem montowania. Jeśli dostępne jest lsof, sprawdzenie otwartych usuniętych plików pomoże zawęzić problem.

Nie zabijaj procesu tylko dlatego, że trzyma taki plik. Ustal usługę i zaplanuj właściwe zamknięcie lub rotację. W systemach ze snapshotami, np. Btrfs, zwykłe usunięcie pliku nie musi od razu zwolnić oczekiwanej ilości miejsca. Dobierz narzędzia do systemu plików.

Docker i bazy wymagają ostrożności

Katalog /var/lib/docker nie jest magazynem przypadkowych śmieci. Zacznij od docker system df i spisu wolumenów. Nie uruchamiaj czyszczenia z opcją usuwania wolumenów jako pierwszej pomocy. Wolumen nieużywany w danej chwili może zawierać dane wyłączonej aplikacji. Backup Dockera wyjaśnia, co zachować.

Tak samo nie kasuj plików w katalogu MariaDB i nie usuwaj ręcznie jej logów bez procedury właściwej dla bazy. Jeśli zapisy już nie działają, najpierw zapewnij niewielki zapas z rozpoznanych zbędnych plików, a następnie napraw źródło przyrostu.

Sprawdź, czy miejsce nie znika ponownie

Po sprzątaniu zapisz stan i obserwuj go po godzinie oraz po wykonaniu zadań nocnych. Ustaw alarm dla zajętości i inode. Jeżeli każda noc dodaje kilka archiwów bez usuwania starszych, problemem jest polityka retencji, a nie za mały dysk. Przy VPS Castpol dobierz przestrzeń do danych aplikacji i planu backupu, nie tylko do rozmiaru instalacji systemu.

Źródła i dokumentacja

Dokumentacja do dalszej weryfikacji ustawień i wymagań swojej wersji.

c.
Castpol Blog

Poradnik wydawany przez Castpol. O blogu · Zgłoś poprawkę

KOLEJNY KROK

Te poradniki uzupełniają temat