lsof Überlebensleitfaden [geschlossen]

104

lsof ist ein unglaublich leistungsfähiges Befehlszeilenprogramm für Unix-Systeme. Es listet geöffnete Dateien auf und zeigt Informationen dazu an. Und da fast alles eine Datei auf Unix-Systemen ist, kann lsof Sysadmins eine Menge nützlicher Diagnosedaten geben.

Was sind einige der häufigsten und nützlichsten Methoden zur Verwendung von lsof und welche Befehlszeilenoptionen werden dafür verwendet?

Hans Sjunnesson
quelle

Antworten:

119

So zeigen Sie alle Netzwerke an, die mit einem bestimmten Thema zusammenhängen port:

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

Verwenden Sie, um Verbindungen zu einem bestimmten Host anzuzeigen @host

lsof [email protected]

Zeigen Sie Verbindungen basierend auf dem Host und dem Port mit @host:port lsof [email protected]: 22 an

grepping for LISTENzeigt an, an welchen Ports Ihr System auf Verbindungen wartet:

lsof -i| grep LISTEN

Zeigen Sie, was ein bestimmter Benutzer geöffnet hat, indem Sie -u:

lsof -u daniel

Sehen Sie, mit welchen Dateien und Netzwerkverbindungen ein Befehl verwendet wird -c

lsof -c syslog-ng

Mit dem -pSchalter können Sie sehen, welche Prozess-ID geöffnet ist. Hier erfahren Sie mehr über unbekannte Prozesse:

lsof -p 10075

Die -tOption gibt nur a zurückPID

lsof -t -c Mail

Mit den Optionen -tund -ckönnen Sie zusammen HUPverarbeiten

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

Sie können das -twith auch verwenden -u, um alles zu töten, was ein Benutzer geöffnet hat

kill -9 $(lsof -t -u daniel)
Kevin
quelle
Quelle: danielmiessler.com/study/lsof
Uphill_ What '1
Ein guter Weg ist, den Cheat-Edelstein zu verwenden, wenn Sie Ruby verwenden. Es ist nur eine bequeme, Community-gesteuerte CLI, um Spickzettel vieler Dienstprogramme (sprachunabhängig) zu erstellen. Probieren Sie es aus .
Kedar Mhaswade
25
lsof -i :port 

Hier erfahren Sie, welche Programme an einem bestimmten Port empfangsbereit sind.

dvorak
quelle
1
Es ist nicht auf "Abhören" beschränkt. Wenn Sie also angeben lsof -i :8080, dass eine Reihe von Prozessen mit einem Proxy auf Port 8080 verbunden sind, erhalten Sie diese ebenfalls.
Matt Byrne
14
lsof +D /some/directory

Zeigt rekursiv alle in einem Verzeichnis geöffneten Dateien an. + d nur für die oberste Ebene.

Dies ist nützlich, wenn Sie eine hohe Wartezeit von% auf E / A haben, mit der Verwendung auf einem bestimmten FS korreliert sind und sehen möchten, welche Prozesse Ihr E / A zerkauen.

Siesta
quelle
13

lsof -ibietet eine Liste der offenen Netzwerk-Sockets. Die -nOption wird DNS - Lookups verhindern, was nützlich ist , wenn die Netzwerkverbindung langsam oder unzuverlässig ist.

John Millikin
quelle
5
lsof -iwird nur zeigen Ihnen , Steckdosen , die Sie in Ihrem Namensraum Zugang haben (und die als „Internet“ Steckdosen durch Selbstbeobachtung angesehen werden, nicht nur jede Art von Netzwerk - Buchse). Andernfalls werden Handles vom Typ 'sock' nicht in der Liste angezeigt.
Nick Bastin
13

Sehen Sie, welche Dateien eine laufende Anwendung oder ein laufender Dämon geöffnet hat:

lsof -p pid

Wobei pid die Prozess-ID der Anwendung oder des Dämons ist.

Chris
quelle
10
lsof +f -- /mountpoint

listet die Prozesse mithilfe von Dateien auf dem Mount auf, die unter / mountpoint bereitgestellt wurden. Besonders nützlich, um herauszufinden, welche Prozesse einen montierten USB-Stick oder eine CD / DVD verwenden.

mas
quelle