Gdy zaczyna ubywać miejsca na dysku – NCDU

Zajmijmy się problemem zajętości dysków. Często gęsto spotykamy się z sytuacją, że po prostu zaczyna nam się kończyć wolna przestrzeń dyskowa i nie do końca wiemy, czym to jest spowodowane.

Z pomocą przychodzi prosty, terminalowy program – ncdu. Nie dość, że przeskanuje on nam całą zawartość wskazanego katalogu to dodatkowo wyświetli wynik w przystępnej, miłej dla oka formie.

Instalacja programu ogranicza się do zainstalowania jednego pakietu z repozytorium. Najpierw odświeżamy listę pakietów w repo (sudo aptitude update), a następnie instalujemy ncdu (sudo aptitude install ncdu).

Instalacja ncdu w systemie Linux

Gdy już mamy zainstalowany przystępujemy do działania. Uruchomienie programu bez parametru przeskanuje nam obecny katalog (ncdu).
Skanowanie dysku przez ncdu

Po otrzymanym drzewie możemy poruszać się z wykorzystaniem strzałek (góra, dół, wejdź do katalogu, wróć do katalogu nadrzędnego).
Wyświetlenie wyniku ncdu

Wynik możemy posortować po nazwie – n, rozmiarze – s, albo po ilości plików w katalogu – C (aby wyświetlić ilość plików w danym katalogu wykorzystujemy klawisz c). Możemy też zmienić kolejność, aby najpierw wyświetliło katalogi, a poniżej pliki – z wykorzystaniem przycisku t.
Zmiana kolejności sortowania w ncdu
Sortowanie po rozmiarze - ncdu
Wyświetlenie rozmiaru pliku w ncdu

Aplikacja umożliwia zmianę prezentacji wykorzystania dysku. Po naciśnięciu klawisza g możemy ją zmienić na graf, wykorzystanie procentowe lub oba jednocześnie.

Zajętość procentowa w ncdu

Program umożliwia przełączanie pomiędzy apparent size, które określa ile danych jest aktualnie w pliku, a disk usage określającym ile dany plik zajmuje miejsca na dysku (klawisz a).
apparent size ncdu
disk usage ncdu

Z poziomu aplikacji możemy podejrzeć informacje o pliku (i), które wyświetli: lokalizację, typ oraz rozmiary disk usage / apparent size. Bezpośrednio możemy usuwać pliki na dysku (d). Po tego typu działaniach przydałoby się przeliczyć od nowa zajętości – do tego wykorzystujemy r.
Informacje o pliku w ncdu
Potwierdzenie skasowania pliku w ncdu

Flagi są znacznikami, które widzimy w pierwszej kolumnie. Wyróżniamy:

! – problem z odczytem danego katalogu (spowodowane np. brakiem uprawnień)

. – problem podczas odczytywania podkatalogów, przez co podany rozmiar może być nierzeczywisty (problemem może być również brak uprawnień, bądź występowanie w podkatalogach socketów, linków itp)

< – plik / katalog został wyłączony z obliczeń (z wykorzystaniem odpowiedniego parametru w momencie uruchamiania aplikacji) > – katalog znajduje się na innym systemie plików

@ – typ jest inny niż plik / katalog (np. link, socket)

H – hard link

e – pusty katalog

Program możemy uruchamiać z wieloma przełącznikami. W ten sposób na przykład uzyskamy rozszerzony tryb (-e), który w informacjach o danym pliku wyświetli dodatkowe informacje.
Informacje o pliku w ncdu

Możemy również wygenerowany wynik zapisać do pliku. Plik wyjściowy będzie sformatowany w formacie JSON. W tym celu dodajemy parametr -o. Jeżeli chcemy, możemy wyświetlić JSON na standardowym wyjściu – w tym celu do przełącznika dodajemy minus: -o –.
Eksport wyniku ncdu do pliku json

Uzyskany wcześniej plik możemy w dowolnym momencie zaimportować wywołując przełącznik -f. Wówczas będziemy mogli przejrzeć w sposób interaktywny rozmiary plików w momencie jego generowania.
Zaimportowany plik json do ncdu

NCDU umożliwia kilka opcji skanowania. Jeżeli chcemy, aby skanował jedynie system plików, na którym znajduje się wskazany przez nas katalog wykorzystujemy przełącznik -x. Program pozwala zrobić wykluczenie w skanowaniu. Definiujemy je parametrem —exclude z nazwą katalogu, którego rozmiaru nie potrzebujemy. Tutaj warto zauważyć, iż ten parametr możemy wywołać wielokrotnie (po jednym dla każdego wykluczonego pliku/katalogu).
ncdu z wykluczeniem pliku

Istnieje jednak łatwiejszy sposób na wykluczenie wielu plików. Należy utworzyć plik, w którym każda linia to jest jedno wykluczenie, a następnie podczas uruchamiania aplikacji wykorzystać parametr -X i wskazać ten plik.
Zdefiniowanie wykluczenia dla ncdu

Na koniec przyjrzyjmy się jeszcze kilku przełącznikom. Program podczas startu informuje nas o postępie skanowania (domyślnie wykorzystywany jest parametr -2). Jeżeli tego nie chcemy wykorzystujemy parametr -0. Istnieje jeszcze parametr -1, który to wyświetla wynik skanowania w jednej linii (postęp skanowania aktualizujący linię).

Jak wspomniałem wcześniej NCDU umożliwia z poziomu interfejsu kasowanie plików. Aby się przed tym uchronić możemy uruchomić go w trybie read-only (parametr -r).
Uruchomienie ncdu w trybie tylko do odczytu (read only)

Program zamykamy klawiszem q. Aby uchronić się przed przypadkowym zamknięciem, podczas startu możemy wykorzystać parametr –confirm-quit, który wymusi na nas potwierdzenie zamknięcia.
Potwierdzenie zamknięcia programu ncdu

W celu świadczenia usług na najwyższym poziomie stosujemy pliki cookies, które będą zamieszczane w Państwa urządzeniu (komputerze, laptopie, smartfonie). W każdym momencie mogą Państwo dokonać zmiany ustawień Państwa przeglądarki internetowej i wyłączyć opcję zapisu plików cookies. View more
Zaakceptuj