lsof steht für list open files und ist ein Hilfsprogramm, welches Informationen über geöffnete Dateien liefert. Dies hört sich im ersten Moment unspektakulär an, jedoch sollte man dabei bedenken, dass unter unixartigen Betriebssystemen, also auch (Ubuntu) Linux, alles eine Datei ist. So werden auch Blockgeräte (=Laufwerke), Netzwerkports usw. über Dateien angesprochen. D.h. lsof kann ein sehr mächtiges Tool zur Überwachung und Analyse des Systems sein.
Installation
lsof ist normalerweise in der Standardinstallation enthalten, kann aber ansonsten über folgendes das Paket installiert werden:
lsof
Verwendung
Die allgemeine Syntax lautet:
lsof [Option] <Format>
Optionen
Der Aufruf ohne Optionen und Formatangabe erzeugt eine sehr lange Ausgabe von offenen Dateien und ist daher nicht besonders sinnvoll oder hilfreich.lsof kennt die folgenden Optionen:
Option | Beschreibung |
/Pfad/Datei | Informationen über die Verwendung der angegebenen Datei |
/dev/cdrom | Informationen über die Verwendung von z.B. dem CD-ROM-Laufwerk |
+D /home/BENUTZER | Informationen über die Verwendung von Dateien z.B. des Home-Verzeichnisses des Anwenders BENUTZER |
+p PID | Liefert die Informationen welche PID welche Datei benutzt |
-c PROZESSNAME | Liefert die Informationen welcher Prozess welche Datei benutzt |
-u ANWENDERNAME | Liefert die Informationen welcher Anwender welche Datei benutzt |
-i TCP/UDP oder IP-Adresse oder Port-Nr. | Liefert die Informationen welcher Netzwerkdienst von welchem Anwender, PID usw. benutzt wird |
+L1 | Liefert die Informationen über bereits gelöschte Dateien |
-a | logische UND-Verknüpfung von Optionen; dies macht immer dann Sinn, wenn lsof mit zwei Optionen aufgerufen wird und beide angewendet werden sollen, da per Voreinstellung immer eine ODER-Verknüpfung angewendet wird. |
Weiterhin kennt lsof die folgenden Ausgabeoptionen:
Option | Beschreibung |
-r Sekunden | Wiederholt die Ausgabe alle x Sekunden |
-n | Gibt IP-Adressen statt Hostnamen aus |
-l | Gibt die Benutzer-ID statt des Benutzernamens aus |
-P | Gibt Port-Nummern statt Service-Namen aus. |
-t | Gibt nur eine PID Liste aus |
-F | Gibt alle Ergebnisse in einer einzigen Spalte aus |