• Czas czytania ~6 min
  • 31.07.2023

Cześć, 100% pełne miejsce na dysku jest częstym problemem, a jako programista lub użytkownik Linuksa często musisz zwolnić miejsce na dysku, usuwając największe pliki i katalogi. Aby to zrobić, musisz znać przykłady poleceń Linux find, aby wyświetlić i usunąć największe pliki i katalogi, a tego nauczysz się w tym samouczku. Jako programista Java musisz również obsługiwać swoją aplikację, z których większość działa głównie na komputerach z systemem Linux. Chociaż produkcja jest monitorowana przez dedykowane zespoły wsparcia i otrzymują regularne alerty o stanie miejsca w systemie plików, często przychodzą do Ciebie lub odpowiedzialnego programisty o tym, co zrobić, gdy miejsce na dysku jest prawie pełne lub osiąga 100%.

Jest to jeszcze bardziej powszechne w środowiskach UAT i QA / TEST, gdzie nikt tak naprawdę nie monitoruje, a następnie ludzie zaczynają krzyczeć do ciebie, że coś nie działa, procesy Java nie działają, a systemy nie są w stanie połączyć się ze sobą, tylko po to, aby odkryć, że nie ma już miejsca na maszynie.

Aby rozwiązać te problemy, musisz zwolnić trochę miejsca, a gdy zabraknie miejsca na dysku i czasu, musisz skoncentrować się na największych plikach i folderach na dysku lub partycji, aby szybko uzyskać miejsce, usuwając tylko kilka plików i katalogów.

Najlepszym sposobem jest wyświetlenie listy 10 najlepszych katalogów według rozmiaru, a następnie wejście do niektórych z nich i znalezienie plików, które można usunąć, aby zwolnić miejsce, np. Stare pliki dziennika, pliki pamięci podręcznej i zrzuty sterty.

Moim preferowanym podejściem jest przejście do katalogu głównego aplikacji, a następnie uruchomienie polecenia find lub du, aby znaleźć największe katalogi rekurencyjnie. Stamtąd mogę iść dalej i usunąć, które zajmują większość miejsca.

Jak znaleźć duże pliki i katalogi, aby zwolnić trochę miejsca na

dyskuPonieważ możesz tu przyjść podczas wyszukiwania szybkiego polecenia Linuksa, aby zwolnić trochę miejsca na dysku, najpierw wymieniam polecenia, których możesz użyć, wyjaśnię to w następnym akapicie.

Poczekaj, jeśli masz trochę czasu, aby zrozumieć, jak działa to polecenie Linux find, ale jeśli się spieszysz, oto czego potrzebujesz:

Polecenie Linuksa, aby znaleźć największe 10 najlepszych katalogów na dysku Oto polecenie, którego używałem codziennie, aby znaleźć duży katalog na dowolnym hoście, gdy skończyło się miejsce na dysku

lub osiągnęło 100% wypełnienia

$ du -hs */ | sort -nr | head

Spowoduje to wyświetlenie największych katalogów na dysku, a następnie można wejść do jednego z nich, najlepiej największych, i znaleźć pliki do usunięcia za pomocą polecenia ls.

Polecenie Linuksa, aby znaleźć największy plik w katalogu

Oto kolejne polecenie, którego możesz użyć do wyświetlenia dużych plików w dowolnym katalogu na hoście Linuksa:

$ ls -lS | head
To wszystko. Masz teraz największe pliki w tym folderze.  Jeśli jest to coś, co możesz usunąć, po prostu to usuń. Jeśli potrzebujesz wszystkich plików, po prostu usuń polecenie head.

Btw, jeśli nie znasz podstawowych poleceń, takich jak head, less, find i ls, sugeruję, abyś najpierw przeszedł przez te darmowe kursy Linuksa, zamiast przeskakiwać przez posty na blogu. To da ci wszystkie informacje potrzebne do lepszego zrozumienia takiego artykułu i rozwiązania codziennych problemów z Linuksem.

Jak znaleźć największe pliki w dowolnym katalogu rekurencyjnie w systemie Linux

Użyjemy teraz polecenia find, aby wyszukać tylko pliki, a następnie sortować, aby znaleźć 10 lub 5 największych plików we wszystkich katalogach z bieżącego katalogu. Spowoduje to wydrukowanie pełnej ścieżki pliku, którą można po prostu skopiować i usunąć, aby zwolnić miejsce na dysku.

$ find -type f -ls | sort -k 7 -r -n | head -5

Znajdź polecenie Znajdź tylko pliki listy, a nie katalogi, dlatego można je sortować za pomocą kolumny 7 (kolumna z rozmiarem pliku).

Sortujemy za pomocą opcji sort -n dla kolejności numerycznej i -r odwrotnej kolejności (od największej do najmniejszej, tj. malejącej), a na końcu tylko pierwszych 5 plików w bieżącym katalogu i podkatalogu.

Jeśli chcesz znaleźć 5 największych plików na swoim komputerze z partycji głównej, możesz użyć go w ten sposób:Jeśli chcesz wyświetlić listę 10 największych plików z bieżącego katalogu, możesz użyć go w ten sposób:

$ find / -type f -ls | sort -k 7 -r -n | head -5

Btw, Jeśli masz problemy ze zrozumieniem powyższego polecenia, nawet po moim wyjaśnieniu,

$ find . -type f -ls | sort -k 7 -r -n | head -10

jak nie rozumiesz potoku, aby połączyć dwa polecenia Linuksa lub podać dane wyjściowe jednego polecenia do innych sugeruję, abyś przeszedł przez kurs Linux Command Line Interface (CLI) Fundamentals na Pluralsight, aby najpierw

nauczyć się podstaw.Jak znajdź, du, sortuj i polecenie głowy współpracują ze sobą?

W Linuksie nie ma ani jednego polecenia, które pomogłoby nam w tym zadaniu, ale użyjemy kombinacji poleceń find, du, sort i head, aby szybko rekurencyjnie znaleźć i usunąć największe pliki i katalogi.

Jeśli nie wiesz, polecenie du oznacza użycie dysku i rozmiar wydruku każdego pliku oraz rekurencyjnie dla katalogów. Jest to przydatne, jeśli system plików ma wiele katalogów i podkatalogów.

Z drugiej strony, polecenie sort służy do sortowania danych wyjściowych polecenia du i drukowania go w konsoli. Jeśli jesteś zainteresowany największym plikiem, musisz sortować w kolejności malejącej, a także musisz sortować numerycznie zamiast sortowania leksykograficznego. W tym celu należy użyć polecenia sort -nr, gdzie -n oznacza sortowanie numeryczne, a r oznacza sortowanie odwrotne, tj. sortowanie w porządku malejącym.

Jak powiedziałem wcześniej, jeśli nie jesteś zaznajomiony z tymi poleceniami, sugeruję, abyś najpierw przeszedł przez kurs Linux Command Line Basics na Udemy, który możesz uzyskać w zaledwie 10 USD za kilka sprzedaży flash, które uruchamiają co miesiąc.

Teraz nie jesteśmy zainteresowani wszystkimi plikami, ponieważ mogą istnieć setki plików i dlatego używamy polecenia head, które może wydrukować 10 lub 5 najlepszych plików w zależności od wyboru. Na przykład głowica 10 wydrukuje 10 linii. Na przykład head -n 10 wydrukuje pierwsze 10 linii.

Jeśli już posortowałeś swoje dane wyjściowe w kolejności malejącej, możesz użyć head -n 10, aby wydrukować 10 największych katalogów lub plików.

Teraz polecenie znajdź, które może pomóc w rekurencyjnym wyszukiwaniu pliku na podstawie rozmiaru we wszystkich katalogach. Po prostu wydaj polecenie find z parametrem -size i uruchom je z bieżącego katalogu, jeśli jesteś już na początku katalogu aplikacji lub partycji.

Następnie przejdzie dalej i znajdzie wszystkie pliki, które są większe niż określony rozmiar.

Chodzi o to, jak znaleźć największe pliki i katalogi na dowolnym hoście, partycji i zwolnić miejsce na dysku w systemie Linux. Te polecenia wyszukiwania Linuksa są bardzo przydatne i zawsze zapisuję je w moich notatkach dla szybkiego odniesienia, wiem, że czasami trudno jest napisać polecenie Linuksa samodzielnie i często wolimy wypróbowane i przetestowane polecenie.

Chociaż powinieneś być ostrożny podczas kopiowania i wklejania poleceń w systemie Linux, ponieważ jeśli skopiujesz nową linię, co jest bardzo możliwe, polecenie zacznie działać i możesz przypadkowo zablokować lub usunąć coś. Krótko mówiąc, nigdy nie uruchamiaj polecenia Linuksa przez kopiowanie i wklejanie na maszynie produkcyjnej.


Powiązane samouczki poleceń systemu UNIX

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297