Polecenia Linuksa

Linuksowe polecenie lsof

Linuksowe polecenie lsof
Narzędzie poleceń „lsof” w systemie Linux jest jednym z wielu wbudowanych narzędzi, które są bardzo przydatne do sprawdzania „listy otwartych plików”. Tak, termin „lsof” to skrót od zadania.

W systemie cały czas działa wiele procesów, które uzyskują dostęp do różnych plików systemu. Pliki te mogą być plikami dyskowymi, skryptami, gniazdami sieciowymi, urządzeniami, nazwanymi potokami i innymi. Używając „lsof” można wykonać wiele rzeczy, takich jak debugowanie. Jest to również przydatne dla administratorów systemu, aby dowiedzieć się, jakie pliki są dostępne przez jakie procesy. Jednym z najbardziej przydatnych scenariuszy, jakie znalazłem, jest sytuacja, w której masz zamiar odmontować system plików, ale nadal uzyskuje się do niego dostęp.

Bez zbędnych ceregieli zacznijmy od „lsof”! Zakładam, że twój obecny system UNIX/Linux ma już zainstalowany „lsof”.

Lokalizacja

który lsof

Zgłasza pełną ścieżkę polecenia, w tym przypadku „lsof”.

Wersja „lsof”
lsof -v

Spowoduje to zgłoszenie szczegółowych informacji o wersji „lsof”, w tym daty kompilacji pliku binarnego, wersji kompilatora, flag kompilatora i innych.

Podstawowe użycie „lsof”

Uruchom sam „lsof”.

lsof

Raportuje DUŻĄ listę wszystkich plików, do których system uzyskuje dostęp w momencie uruchomienia polecenia.

Podczas gdy wszystkie pola są oczywiste, najczęściej mylisz się z kolumnami „FD” i „TYPE” i ich wartościami. Sprawdźmy je.

FD: Skrót od „Deskryptor pliku”. Wymyśla następujące wartości.

Istnieją również inne wartości, które zauważysz w kolumnie, takie jak „1u”, a następnie u, r, w itd. wartość. Co to znaczy??

TYP: Opisuje typ pliku i jego identyfikację. Wartości są następujące.

Otwarte pliki specyficzne dla użytkownika

Linux to genialna platforma dla wielu użytkowników. Wielu użytkowników może jednocześnie uzyskiwać dostęp do systemu i wykonywać operacje, do których mają uprawnienia.

Aby sprawdzić pliki, do których uzyskuje dostęp określony użytkownik, uruchom następujące polecenie.

lsof -u

Jednak, aby sprawdzić użytkowników z wyższą rangą, „lsof” będzie potrzebował uprawnienia „superużytkownika”.

sudo lsof -u

Co powiesz na sprawdzenie wszystkich poleceń i plików, do których uzyskuje dostęp określony użytkownik?? Uruchom następujący.

lsof-i-u

Ponownie, dla użytkowników z wyższą rangą, „lsof” będzie potrzebował uprawnienia „superużytkownika”.

sudo lsof-i-u

Procesy uruchomione specyficzne dla portu

Aby znaleźć wszystkie procesy, które aktualnie używają określonego portu, wywołaj „lsof” z flagą „-i”, a następnie protokołem i informacjami o porcie.

lsof-i<46><@hostname|host_address>
:

Na przykład, aby sprawdzić wszystkie programy, które obecnie uzyskują dostęp do portu 80 przez protokół TCP/IP, uruchom następujące polecenie.

lsof-i TCP:80

Ta metoda może być również użyta do pokazania wszystkich procesów, które używają portów w określonym zakresie, na przykład od 1 do 1000. Struktura poleceń jest podobna do poprzedniej z odrobiną magii w części dotyczącej numeru portu.

lsof-i TCP: 1-1000

Procesy specyficzne dla protokołu

Oto 2 przykłady pokazujące procesy, które obecnie wykorzystują protokoły IPv4 i IPv6.

lsof -i 4

lsof-i 6

Wyświetlanie listy połączeń sieciowych

Następujące polecenie zgłosi wszystkie połączenia sieciowe z bieżącego systemu.

lsof-i

Wykluczanie z ^

Tak, możemy wykluczyć konkretnego użytkownika, port, FD i inne za pomocą znaku „^”. Wszystko, co musisz zrobić, to używać go ostrożnie, aby nie zepsuć całego wyjścia.

W tym przykładzie wykluczmy wszystkie procesy z użytkownika „root”.

lsof -u^root

Istnieją inne sposoby wykorzystania tego mechanizmu wykluczania z „lsof”, na przykład z flagami takimi jak „-c”, „-d” itp. Nie wszystkie flagi obsługują ten mechanizm. Dlatego zalecam wypróbowanie wersji demonstracyjnej tej metody z dowolną flagą przed zaimplementowaniem jej w niektórych skryptach.

Wyszukiwanie PID

PID jest ważną właściwością każdego uruchomionego procesu w systemie. Pozwala na dokładniejsze wskazanie określonego procesu. Nazwa procesu nie jest zbyt pomocna w wielu sytuacjach, ponieważ ten sam plik binarny może tworzyć swoje kopie i równolegle wykonywać różne zadania.

Jeśli nie wiesz, jak uzyskać PID procesu, po prostu użyj „ps”, aby wyświetlić wszystkie uruchomione procesy i przefiltruj dane wyjściowe za pomocą „grep” z nazwą procesu i/lub poleceniami.

ps -A

Teraz wykonaj filtrowanie za pomocą „grep”.

ps -A | grep

Teraz sprawdź, do jakich plików uzyskuje dostęp PID.

lsof -p

Wyświetlanie listy otwartych plików dla określonego urządzenia

Funkcjonalność „lsof” nie ogranicza się tylko do tych funkcji. Możesz również filtrować wynik „lsof” według urządzenia. W tym celu polecenie będzie wyglądać mniej więcej tak.

lsof

To polecenie jest bardzo przydatne, aby znaleźć wszystkie uruchomione procesy z informacjami o ich właścicielu uzyskującym dostęp do określonego systemu plików. Jeśli masz problemy z odmontowaniem systemu plików, jest to najlepszy sposób.

lsof

Wyświetl listę otwartych plików w katalogu

Podobnie jak w poprzednim przykładzie, po prostu przekaż ścieżkę katalogu do „lsof”, aby dowiedzieć się, czy jakiś proces ma do niego dostęp.

Uwaga: „lsof” sprawdza katalog rekursywnie, więc może to zająć trochę czasu.

=lsof +D

Bonus: zakończ całą aktywność użytkownika

Zachowaj szczególną ostrożność przy tej części, ponieważ może po prostu zepsuć wszystko, co robi użytkownik. Następujące polecenie zabije wszystkie uruchomione procesy użytkownika.

sudo zabić -9 'lsof -t -u Końcowe przemyślenia

Cechy „lsof” nie kończą się tutaj. Te wymienione tutaj to te, których będziemy potrzebować najbardziej na co dzień. Istnieje wiele innych funkcji „lsof”, które mogą się przydać (oczywiście w konkretnych przypadkach).

Aby zapoznać się ze wszystkimi dostępnymi funkcjami i ich wykorzystaniem, sprawdź strony podręcznika i informacje „lsof”.

człowiek lsof

informacje lsof

lsof -?

Cieszyć się!

Gry Jak zwiększyć FPS w Linuksie??
Jak zwiększyć FPS w Linuksie??
FPS oznacza Klatki na sekundę. Zadaniem FPS jest pomiar liczby klatek na sekundę podczas odtwarzania wideo lub wydajności gier. W prostych słowach lic...
Gry Najlepsze gry w laboratorium aplikacji Oculus
Najlepsze gry w laboratorium aplikacji Oculus
Jeśli jesteś posiadaczem gogli Oculus, musisz wiedzieć o sideloadingu. Sideloading to proces instalowania w zestawie nagłownym treści innych niż sklep...
Gry Top 10 Games to Play on Ubuntu
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...