Lsof
Version vom 21. Februar 2024, 12:32 Uhr von Thomas.will (Diskussion | Beiträge)
Funktion
lsof zeigt geöffnete Dateien, Verzeichnisse, Unixsockets, IP-Sockets und Pipes an. Mit den passenden Optionen aufgerufen, zeigt es z.B.
- alle Dateien und Netzverbindungen, die ein bestimmter Prozess geöffnet hat,
- alle Prozesse, die eine bestimmte Datei oder Netzverbindung geöffnet haben oder
- die Namen aller Prozesse, die auf eine Netzverbindung warten.
Optionen
| Option | Zweck |
|---|---|
| +D Verzeichnis | Zugriffe auf die Dateien unterhalb des Verzeichnisses anzeigen |
| +p PIDs | Alles anzeigen, was die Prozesse mit diesen PIDs geöffnet haben. Um mehrere PIDs anzugeben, diese mit Komma trennen. |
| -c Name | Alles anzeigen, was die Prozesse geöffnet haben, deren Namen mit diesem Text beginnen. |
| -u user[,user...] | Alles anzeigen, was die Prozesse geöffnet haben, die einem der angegebenen Usernamen oder User-ID gehören. User wird mit ^ negiert. |
| -i :ports | Die Netzverbindungen des Ports anzeigen. |
| +L 1 | Gelöschte Dateien, die noch geöffnet sind. |
| Ausgabe Option | Zweck |
| -r Sekunden | Die Ausgabe regelmäßig wiederholen. Wenn man +r übergibt, beendet sich lsof, sobald die Liste leer ist. |
| -n | Die Ausgabe regelmäßig wiederholen. Wenn man +r übergibt, beendet sich lsof, sobald die Liste leer ist. |
| -l | |
| -p | Portnummern an Stelle von Servicenamen ausgeben. |
| -t | Eine PID-Liste an Stelle der Tabelle ausgeben. |
| -F | gibt die Tabelle (alle Spalten) in einem Format aus, das besonders gut zum Weiterverarbeiten in anderen Programmen geeignet ist. |
Beispiele
Wenn root lsof ohne Parameter aufruft, zeigt es alles, was von sämtlichen Prozessen geöffnet ist.
root@zero:~# lsof | more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root cwd DIR 104,2 4096 2 / init 1 root rtd DIR 104,2 4096 2 /
Auf diesem System sind dies momentan 2711 geöffnete Objekte
root@zero:~# lsof | wc -l 2711
Wer Benutzt den Midnight Commander?
root@zero:~# lsof /usr/bin/mc 2> /dev/null COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME mc 9344 thomas txt REG 8,1 561416 896015 /usr/bin/mc
Wer greift auf das CD-Laufwerk zu?
root@zero:~# lsof /dev/cdrom COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 9434 thomas cwd DIR 11,0 2048 18112 /media/cdrom0
Wer greift auf /usr inklusive Unterverzeichnisse zu?
root@zero:~# lsof +D /usr ...
Welche Dateien benötigen meine Bash?
root@cardassia:~# lsof +p 9450 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 9450 root cwd DIR 8,1 4096 65409 /root bash 9450 root rtd DIR 8,1 4096 2 / bash 9450 root txt REG 8,1 725136 1708789 /bin/bash ...
Auf welche Dateien greift der Xorg-Prozess zu?
root@zero:~# lsof -c X COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3132 root cwd DIR 8,1 4096 64902 /etc/X11 Xorg 3132 root rtd DIR 8,1 4096 2 / ...
Welche Dateien werden zurzeit von nicht Root Usern benutzt?
root@zero:~# lsof -u ^root | more COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME ntpd 1738 ntp cwd DIR 8,1 4096 2 / ntpd 1738 ntp rtd DIR 8,1 4096 2 / ...
Welche Prozesse kommunizieren auf Port 22 miteinander?
root@zero:~# lsof -i :22 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 3657 root 3u IPv4 14810 TCP *:ssh (LISTEN) sshd 3657 root 4u IPv6 14812 TCP *:ssh (LISTEN) sshd 23745 root 3u IPv4 1009411 TCP zero.delta.int:ssh->mordor.alpha.quadrant:46214 (ESTABLISHED) sshd 25498 root 3u IPv4 1041201 TCP zero.delta.int:ssh->mordor.alpha.quadrant:38190 (ESTABLISHED) sshd 25641 root 3u IPv4 1042316 TCP zero.delta.int:ssh->mordor.alpha.quadrant:38196 (ESTABLISHED) sshd 32595 root 3u IPv4 1153784 TCP zero.delta.int:ssh->cardassia.alpha.quadrant:60422 (ESTABLISHED)
Welche Dateien wurden gelöscht, obwohl sie noch offen sind?
root@zero:~# lsof -a +L1 / ...
Welche Programme greifen auf Dateien zu die gelöscht wurden?
root@zero:~# lsof | awk '$5 == "DEL" { print }'