LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Przegląd bloga /IT & Networks/Tutorials / Tutorial: Zarządzanie przestrzenią dyskową: Wyszukiwanie największych plików...
Ten artykuł w innych językach:

Tutorial: Zarządzanie przestrzenią dyskową: Wyszukiwanie największych plików przez SSH w Ubuntu/Debian

Tutorial: Zarządzanie przestrzenią dyskową: Wyszukiwanie największych plików przez SSH w Ubuntu/Debian
Spis treści
  1. Najpierw właściwy system plików
  2. Pliki większe niż 500 MiB
  3. Sortowanie zajętych bloków przez du
  4. Gdy liczby się różnią
  5. Pytania i odpowiedzi
  6. Źródła

Prawie pełny system plików wymaga diagnozy przed porządkowaniem. Duże pojedyncze pliki są jedną z przyczyn; znaczenie mogą mieć również liczne małe pliki, usunięte pliki nadal otwarte lub właściwości systemu plików. Poniższe polecenia sprawdzają zajętość w Ubuntu i Debianie. Nie usuwają plików.

Najpierw właściwy system plików

Po połączeniu SSH ścieżka bezwzględna określa badany obszar. Przykładowa ścieżka wymaga zastąpienia istniejącym katalogiem. df opisuje system plików zawierający katalog, a nie tylko sam katalog.

Shell
df -h -- "/sciezka/do/katalogu"
df -i -- "/sciezka/do/katalogu"

df -h pokazuje zajętość w czytelnych jednostkach binarnych. df -i pokazuje wykorzystanie i-węzłów, jeśli jest obsługiwane. I-węzły przechowują metadane systemu plików; brak dostępnych i-węzłów może uniemożliwić tworzenie plików mimo wolnych bloków danych.

Pliki większe niż 500 MiB

Shell
find "/sciezka/do/katalogu" -xdev -type f -size +500M -exec ls -lh -- {} +

-type f wybiera zwykłe pliki. GNU find interpretuje M jako 1 048 576 bajtów, więc +500M oznacza rozmiar powyżej 500 MiB, a nie 500 dziesiętnych MB. Porównanie dotyczy rozmiaru logicznego. Plik rzadki może mieć duży rozmiar logiczny, zajmując niewiele bloków.

-xdev zapobiega przechodzeniu do innych systemów plików. -exec ls -lh -- {} + przekazuje nazwy znalezionych plików partiami bezpośrednio do ls. Pokazuje szczegóły, ale nie tworzy rankingu rozmiarów. Cudzysłowy obsługują spacje w ścieżce. Błędy uprawnień wymagają uwagi, ponieważ niedostępne katalogi oznaczają niepełne wyniki.

Sortowanie zajętych bloków przez du

Shell
du -axh -- "/sciezka/do/katalogu" | sort -rh | head -n 10

du -a obejmuje pliki i katalogi; -h formatuje rozmiary, a -x pozostaje w jednym systemie plików. sort -rh sortuje czytelne rozmiary malejąco, a head -n 10 ogranicza wynik do dziesięciu wierszy. Wartości katalogów zawierają już zawartość. Sumowanie wszystkich wierszy policzyłoby te same dane wielokrotnie. To lista największych pozycji, nie wyłącznie pojedynczych plików.

Potok służy do interaktywnego przeglądu. Znaki nowego wiersza w nazwach plików mogą zakłócać prezentację; automatyczne przetwarzanie wymaga rekordów rozdzielanych znakiem NUL. Duże skany i sortowanie zajmują czas, obciążają wejście/wyjście i mogą potrzebować miejsca tymczasowego. Odpowiedni katalog początkowy ogranicza ten koszt.

Zajętość systemu plików, rozmiar logiczny i zajęte bloki odpowiadają na różne pytania. Dodatkowe kontrole badają brakujące wpisy oraz niedobór i-węzłów.
Zajętość systemu plików, rozmiar logiczny i zajęte bloki odpowiadają na różne pytania. Dodatkowe kontrole badają brakujące wpisy oraz niedobór i-węzłów.

Gdy liczby się różnią

df i du mierzą różne wielkości. Rozbieżność jest wskazówką, a nie dowodem jednej przyczyny. Niedostępne ścieżki, różne granice montowania, migawki, zarezerwowane miejsce oraz rozliczanie bloków przez system plików również mogą mieć znaczenie.

Shell
du --inodes -x --max-depth=1 -- "/sciezka/do/katalogu" | sort -nr
lsof -nP +L1

du --inodes pomaga znaleźć katalogi z wieloma wpisami systemu plików, również z licznymi małymi plikami. lsof +L1 pokazuje otwarte pliki mające mniej niż jedno dowiązanie twarde. W Linuksie plik usunięty z katalogu może zajmować bloki aż do zwolnienia ostatniej otwartej referencji. Widoczność procesów zależy od uprawnień; lsof może wymagać osobnej instalacji.

Pytania i odpowiedzi

Czy du pomija wiele małych plików?

Nie. Sumy katalogów uwzględniają zawartość, a du --inodes uzupełnia wynik o liczbę wpisów. Wyszukiwanie dużych pojedynczych plików może przeoczyć tę przyczynę, lecz sumowanie katalogów nie ma takiego ogólnego ograniczenia.

Czy każdy duży plik można usunąć?

Nie. Baza danych, plik aplikacji lub kopia zapasowa może być duża i nadal potrzebna. Porządkowanie zależy od przeznaczenia, retencji i procedur aplikacji. W przypadku logów lepszym rozwiązaniem jest skonfigurowana rotacja lub obsługiwane ponowne otwarcie niż przypadkowe usuwanie aktywnych plików.

Czy te kontrole wyjaśniają każdy pełny dysk?

Nie. Limity, migawki, metadane systemu plików lub inny pełny punkt montowania mogą wymagać dalszych sprawdzeń. Punktem wyjścia są faktycznie dotknięta ścieżka i właściwy system plików.

Lukas Wójcik

Lukas Wójcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Masz pytanie lub pomysł na projekt internetowy? Napisz krótko, o co chodzi. Formularz korzysta z reCAPTCHA do ochrony przed spamem.

Napisanie komentarza

Doświadczenia z innym sprzętem lub inną wersją oprogramowania oraz pytania o konfigurację są tu mile widziane.

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.