przewodnik przetrwania lsof [zamknięty]

104

lsof to niezwykle potężne narzędzie wiersza poleceń dla systemów uniksowych. Zawiera listę otwartych plików, wyświetlając informacje o nich. A ponieważ w systemach uniksowych prawie wszystko jest plikiem, lsof może dać administratorom mnóstwo przydatnych danych diagnostycznych.

Jakie są najpopularniejsze i najbardziej przydatne sposoby korzystania z lsof i które przełączniki wiersza polecenia są do tego używane?

Hans Sjunnesson
źródło

Odpowiedzi:

119

Aby wyświetlić wszystkie sieci związane z danym port:

lsof -iTCP -i :port
lsof -i :22

Aby wyświetlić połączenia z określonym hostem, użyj @host

lsof [email protected]

Pokaż połączenia na podstawie hosta i portu, używając @host:port lsof [email protected]: 22

grepping dla LISTEN pokazuje, na jakich portach system oczekuje na połączenia:

lsof -i| grep LISTEN

Pokaż, co dany użytkownik otworzył za pomocą -u :

lsof -u daniel

Zobacz, jakich plików i połączeń sieciowych używa polecenie -c

lsof -c syslog-ng

Plik -pPrzełącznik pozwala zobaczyć co dana ID proces ma otwarte, co jest dobre dla czegoś więcej o nieznanych procesów:

lsof -p 10075

Ta -topcja zwraca tylko plikPID

lsof -t -c Mail

Używając razem opcji -ti -c, możesz HUPprzetwarzać

kill -HUP $(lsof -t -c sshd)

Możesz także użyć -twith, -uaby zabić wszystko, co otworzył użytkownik

kill -9 $(lsof -t -u daniel)
Kevin
źródło
Źródło: danielmiessler.com/study/lsof
Uphill_ What '1
Dobrym sposobem jest użycie klejnotu do oszukiwania, jeśli używasz Rubiego. Jest to po prostu wygodny, oparty na społeczności CLI do ściągania arkuszy wielu narzędzi (niezależnych od języka). Daj mu szansę .
Kedar Mhaswade
25
lsof -i :port 

powie ci, jakie programy nasłuchują na określonym porcie.

dvorak
źródło
1
Nie ogranicza się do „nasłuchiwania”, więc jeśli określisz lsof -i :8080i masz kilka procesów łączących się z proxy na porcie 8080, to też je otrzymasz.
Matt Byrne
14
lsof +D /some/directory

Wyświetli rekurencyjnie wszystkie pliki otwarte w katalogu. + d tylko na najwyższym poziomie.

Jest to przydatne, gdy masz wysoki procent oczekiwania na IO, skorelowany do użycia na określonym FS i chcesz zobaczyć, które procesy przeżuwają twoje io.

sjesta
źródło
13

lsof -iwyświetli listę otwartych gniazd sieciowych. Ta -nopcja zapobiegnie wyszukiwaniu DNS, co jest przydatne, gdy połączenie sieciowe jest wolne lub zawodne.

John Millikin
źródło
5
lsof -ipokaże tylko gniazda, do których masz dostęp w swojej przestrzeni nazw (i które są traktowane jako gniazda „internetowe” przez introspekcję, a nie byle jakie gniazda sieciowe). W przeciwnym razie uchwyty typu „skarpetka” nie pojawią się na liście.
Nick Bastin
13

Zobacz, jakie pliki otworzyła uruchomiona aplikacja lub demon:

lsof -p pid

Gdzie pid to identyfikator procesu aplikacji lub demona.

Chris
źródło
10
lsof +f -- /mountpoint

wymienia procesy korzystające z plików w miejscu montażu zamontowanym w / punkt montowania. Jest to szczególnie przydatne do wyszukiwania procesów, w których używane są zamontowane pendrive'y lub płyty CD / DVD.

mas
źródło