lsof ist ein Akronym für List of open files die detaillierte Informationen darüber anzeigt, welche Dateien auf einem Linux-System offen gehalten werden und welche Prozesse sie geöffnet haben. Es wurde von Victor A. Abell entwickelt und unterstützt.
Dieser Artikel wird Ihnen helfen, die Verwendung des lsof-Befehls zusammen mit 12 praktischen Beispielen zu verstehen.
Liste aller geöffneten Dateien mit lsof
Um die Liste der geöffneten Dateien anzuzeigen, führen Sie einfach lsof aus und Sie erhalten die Ausgabe wie unten, wo Sie eine Kopfzeile wie einen Befehl, Pid, Benutzer, FD usw. sehen können.
$ lsof
Im obigen Beispiel sind die meisten Spalten und ihre Werte selbsterklärend. Sehen wir uns also an, was eigentlich FD ist, Fd bezieht sich auf den Dateideskriptor und enthält Werte wie:
- cwd – aktuelles Arbeitsverzeichnis
- rtd – Stammverzeichnis
- txt – Text
- mem – speicherabgebildete Datei
Dateiliste für bestimmten Benutzer öffnen
Sie können den Benutzer angeben, indem Sie die Option -u für den Befehl verwenden, mit dem Sie alle geöffneten Dateien für diesen Benutzer auflisten können.
$ lsof -u root
Geöffnete Datei nach Prozess-ID auflisten
Angenommen, Sie kennen die PID des spezifischen Prozesses, können Sie die Liste der geöffneten Dateien basierend auf der PID durchsuchen, indem Sie die Option -p zusammen mit dem Befehl mit dem PID-Wert verwenden. Sie müssen den Befehl wie im unten angegebenen Beispiel ausführen.
# lsof -p 82
Spezieller Port läuft Prozess
Um zu überprüfen, welcher Prozess den bestimmten Port belegt, können Sie ihn mit der Option -i zusammen mit der Portnummer bei TCP/UDP auflisten. Lassen Sie uns im folgenden Beispiel herausfinden, welcher Prozess Port 80 belegt hat.
# lsof -i:80
Liste der spezifischen Netzwerkdateien (IPv4 und IPv6) anzeigen
Um die geöffneten Dateien nach Netzwerkdateityp anzuzeigen, müssen Sie den Typ hinter der Option -i angeben.
Für IPv4 müssen Sie den folgenden Befehl ausführen.
# lsof -i 4
Führen Sie für IPv6 den Befehl
aus# lsof -i 6
Prozesse finden, die auf einen bestimmten Portbereich hören
Wenn Sie die Liste der geöffneten Dateien des bestimmten Portbereichs anzeigen möchten. Sie müssen -i hinter dem Befehl mit einem bestimmten Portbereich verwenden.
# losf -i TCP:1-100
Ausschließen des bestimmten Benutzers aus der Liste der geöffneten Dateien
Sie können die Benutzer von der Ausgabe ausschließen, indem Sie dem Befehl das Zeichen „^“ hinzufügen, wie im folgenden Beispiel gezeigt.
# lsof -i -u^sanju
Prozesse nach Verzeichnispfad auflisten
Um einen Prozess zu finden, der in einem bestimmten Verzeichnis ausgeführt wird, können Sie einen Befehl mit der Option +D ausführen, der den Pfad zusammen mit ihm anhängt. Sie müssen den Befehl folgendermaßen ausführen.
# lsof +D /home/sanju
Netzwerkverbindungen anzeigen
Benutzeroption -i für den Befehl, um die Liste der Netzwerkverbindung basierend auf Listening &Established anzuzeigen.
$ lsof -i
Beenden Sie einen bestimmten Prozess
Manchmal können einige Prozesse dem Herunterfahren widerstehen, selbst wenn Sie den Prozess schließen, oder ein unbekannter Prozess belegt möglicherweise den Port, an dem Sie ein bestimmtes Programm ausführen möchten. Um das Herunterfahren des Prozesses zu erzwingen, können Sie den Befehl lsof verwenden, da es einfacher ist, den laufenden Prozess aufzulisten. Sie müssen den Befehl also folgendermaßen ausführen.
# kill -9 $(lsof -t -i:8080)
Geöffnete Dateien basierend auf FD (File Descriptor) auflisten
Sie können die geöffneten Dateien basierend auf FD-Typen filtern, Sie müssen die Option -d zusammen mit dem FD-Typ verwenden, wie im Beispiel unten erwähnt.
# lsof -d rtd
Geöffnete Dateien basierend auf dem Prozessnamen auflisten
Sie können die Dateien nach dem Prozessnamen auflisten, indem Sie die Option -c mit dem Befehl verwenden. Führen Sie den Befehl folgendermaßen aus
# lsof -c nginx
Schlussfolgerung
Ich bin Ihnen dankbar, dass Sie sich die Zeit genommen haben, diesen Artikel durchzugehen. Ich hoffe, Sie haben etwas darüber gelernt, wie der Befehl lsof verwendet werden kann. Dies sind die Dinge, die ich beim Bereitstellen der Anwendung nützlich finde.