2008-09-19 11 views
85

lsof ist ein unglaublich leistungsstarkes Befehlszeilenprogramm für Unix-Systeme. Es listet geöffnete Dateien auf und zeigt Informationen über sie an. Und da fast alles eine Datei auf Unix-Systemen ist, kann lsof Systemadministratoren jede Menge nützlicher Diagnosedaten geben.lsof survival guide

Welche der gebräuchlichsten und nützlichsten Methoden zur Verwendung von lsof und welche Befehlszeilenoptionen werden dafür verwendet?

Antwort

10

lsof -i wird eine Liste der offenen Netzwerk-Sockets bereitstellen. Die Option -n verhindert DNS-Lookups, was nützlich ist, wenn Ihre Netzwerkverbindung langsam oder unzuverlässig ist.

+3

'lsof -i' zeigt Ihnen * nur * Sockets, auf die Sie in Ihrem Namespace Zugriff haben (und die durch Introspektion als" Internet "Sockets angesehen werden, nicht irgendeine Art von Netzwerk-Socket). Sonst werden Handles des Typs 'Sock' nicht in der Liste angezeigt. –

10

sehen, welche Dateien eine laufende Anwendung oder Dämon hat offen:

lsof -p pid 

Wo pid die ID des Anwendungsprozesses oder Daemon.

17
lsof -i :port 

wird Ihnen sagen, welche Programme an einem bestimmten Port abhören.

+1

Es ist nicht auf "hören" beschränkt. Wenn Sie also "lsof -i: 8080" angeben und mehrere Prozesse mit einem Proxy über Port 8080 verbunden sind, erhalten Sie diese ebenfalls. –

98

alle eine ähnliche Vernetzung zeigen port gegeben:

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

Um zu zeigen, Verbindungen zu einem bestimmten Host, verwenden @host

lsof [email protected] 

anzeigen Verbindungen auf dem Host und den Port basierend mit @host:port lsof [email protected]

5:22

grep ping für LISTEN zeigt, welche Ports Ihr System für Verbindungen wartet auf:

lsof -i| grep LISTEN 

zeigen, was ein bestimmter Benutzer geöffnet hat mit -u:

lsof -u daniel 

sehen, welche Dateien und Netzwerkverbindungen, die ein Befehl verwendet -c

lsof -c syslog-ng 

Der -p-Schalter kann Sie sehen, was eine bestimmte Prozess-ID geöffnet hat, die für das Lernen mehr über unbekannte Prozesse gut ist:

lsof -p 10075 

Die -t Option kehrt nur PID

lsof -t -c Mail 

die -t Verwendung und -c Optionen zusammen können Sie HUP Prozesse

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

Sie können auch die -t mit -u verwenden, um alles zu töten ein Benutzer offen

kill -9 $(lsof -t -u daniel) 
hat
+0

Quelle: http://danielmiessler.com/study/lsof/ –

+0

Ein guter Weg ist es, den Cheat-Edelstein zu verwenden, wenn Sie Ruby verwenden. Es ist einfach praktisch, Community-driven CLI zu Spickzettel von vielen Dienstprogrammen (sprachunabhängig). Probieren Sie es aus (http://cheat.errtheblog.com/). –

7
lsof +f -- /mountpoint 

listet die Prozesse verwenden, um Dateien auf die Halterung an/einhängepunkt montiert. Besonders nützlich, um herauszufinden, welcher Prozess einen USB-Stick oder eine CD/DVD verwendet.

10
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 hohe Wartezeit% für IO haben, korreliert für die Verwendung auf einem bestimmten FS und wollen sehen, welche Prozesse Ihr io kauen.