GNU/Linux >> LINUX-Kenntnisse >  >> Linux

40 Einfacher und effektiver „lsof-Befehl“ im Linux-System

Der Befehl lsof ist einer der überzeugendsten Linux-Terminalbefehle für Administratoren und Hauptbenutzer. Der Name lsof steht für „List of Open Files“ und liefert Informationen über alle Dateien, die von einem Prozess geöffnet wurden. Offene Dateien können sich auf mehrere Dateitypen beziehen, einschließlich regulärer Dateien, Verzeichnisse, Netzwerkstreams, Ausführungsreferenzen, Blockdateien und so weiter. Die häufigste Verwendung von lsof ist das Debuggen von Systemproblemen. Auch Linux-Netzwerkadministratoren verlassen sich bei der Behebung von Netzwerkproblemen auf lsof. Unsere Redakteure haben 40 einfache, aber äußerst nützliche Beispiele für lsof ausgewählt, um Benutzern zu helfen, diesen Befehl detaillierter zu lernen.

Nützlichster „lsof-Befehl“ unter Linux

Da das Linux-Dateisystem alles in Ihrem System als Datei betrachtet, ist es zwingend erforderlich, eine bessere Kontrolle über Ihre Dateien zu haben. Das Dienstprogramm lsof ermöglicht Ihnen genau dies und bietet viel mehr zusätzliche Informationen, die beim Debuggen nützlich sind. Netzwerkadministratoren können lsof verwenden, um offene Netzwerk-Sockets zu überprüfen und ihre Netzwerksicherheit mit diesen Informationen zu stärken.

1. Alle geöffneten Dateien auflisten

In seiner einfachsten Anwendung druckt lsof alle aktuell geöffneten Dateien aus. Keine Panik, wenn Sie eine Reihe unbekannter Dateien sehen. Sie sind Systemdateien, die von zugrunde liegenden Prozessen und dem Linux-Kernel erstellt werden. Die Ausgabeinformationen sind in mehrere Spalten unterteilt, wie COMMAND, PID, USER, FD und TYPE.

$ lsof
$ lsof | less

COMMAND bezeichnet das Programm, das die Datei aufgerufen hat, PID bezeichnet die Prozess-ID, TYPE stellt den Dateityp dar und FD ist der Dateideskriptor. Sie werden mehr über sie erfahren, wenn Sie in diesem Leitfaden vorankommen.

2. Kernel-Blöcke unterdrücken

Die Ausgabe des obigen Befehls enthält viele Blockdateien, die vom Kernel geöffnet werden und für die meisten nicht-technischen Benutzer wenig Sinn machen. Glücklicherweise erlaubt uns lsof, diese Dateien mit -b zu unterdrücken Option.

$ lsof -b
- -

Jetzt vermeidet lsof das Auflisten der Kernelblöcke und garantiert, dass Befehle wie stat , lstat und readlink funktionieren ohne Probleme. Sie sollten diese Option verwenden, wenn Sie mit Systemdateien auf niedriger Ebene usw. arbeiten.

3. Dateien basierend auf dem Benutzernamen auflisten

Mit dem Linux-Befehl lsof können wir ganz einfach alle geöffneten Dateien für einen bestimmten Benutzer auflisten. Fügen Sie einfach das -u hinzu Option, gefolgt vom Benutzernamen.

$ lsof -u abc

Dieser Befehl listet Dateien auf, die vom Benutzer abc geöffnet wurden . Sie können auch mehrere Benutzernamen gleichzeitig verwenden, indem Sie eine durch Kommas getrennte Liste verwenden. Es schlägt jedoch fehl, wenn sich zwischen den Benutzernamen Leerzeichen befinden.

$ lsof -u aaa,bbb,ccc

Es listet nun Dateien auf, die von den drei hypothetischen Benutzern geöffnet wurden. Sie können auch ^(Negation) hinzufügen Operator vor einem Benutzernamen. Es wird lsof veranlassen, Dateien auszulassen, die von diesen Benutzern geöffnet werden.

$ lsof -u ^xyz

4. Netzwerkdateien auflisten

Netzwerkdateien sind Dateien, die dem TCP/IP-Stack zugeordnet sind, nämlich Sockets. Sie können das -i verwenden Option zum Auflisten aller derzeit geöffneten Netzwerkdateien mit lsof.

$ lsof -i

Es druckt alle Netzwerkdateien zusammen mit ihrem Typ und den zugehörigen Protokollen. Verwenden Sie -i4 oder-i6 um entweder IPv4- und IPv6-Dateien aufzulisten.

$ lsof -i4
$ lsof -i6

5. Alle TCP/UDP-Dateien auflisten

Die folgenden Befehle zeigen, wie lsof zum Ausdrucken aller derzeit geöffneten TCP- und UDP-Prozesse verwendet wird. TCP oder Transmission Control Protocol ist das De-facto-Kommunikationsprotokoll, das von modernen Netzwerken verwendet wird. Verwenden Sie den folgenden Befehl, um alle TCP-Prozesse aufzulisten.

$ lsof -i TCP

UDP oder User Datagram Protocol ist ein zustandsloses Protokoll, das für Datenübertragungen mit geringer Latenz verwendet wird. Sie können den folgenden Befehl verwenden, um alle UDP-Prozesse aufzulisten, die lsof verwenden.

$ lsof -i UDP

6. Prozesse auflisten, die auf bestimmten Ports ausgeführt werden

Das -i Mit dieser Option können Administratoren auch alle Dateien auflisten, die auf einem bestimmten Port ausgeführt werden. Dies ist nützlich bei der Netzwerkfehlerbehebung und ermöglicht es Administratoren, robuste Linux-iptables-Regeln zu definieren.

$ lsof -i TCP:22

Dieser Befehl listet die Prozesse auf, die auf TCP-Port 22 ausgeführt werden. Der ssh-Daemon wird normalerweise auf Port 22 ausgeführt. Sie können auch nach anderen Ports suchen. Der folgende Befehl sucht nach allen Prozessen, die auf Port 443 laufen.

$ lsof -i TCP:443

7. Prozesse auflisten, die auf einer Reihe von Ports ausgeführt werden

Der folgende Befehl listet alle Dateien auf, die von Prozessen erstellt werden, die auf einem bestimmten Bereich von Ports ausgeführt werden. Wir definieren einfach den Bereich und lsof gibt jede Datei aus, die es mit einer dieser Portnummern verknüpfen kann.

$ lsof -i TCP:1-1024

Jetzt sucht lsof nach Prozessen, die auf einem beliebigen TCP-Port zwischen 1-1024 laufen, und listet alle aktiven Dateien auf, die von diesen Prozessen erstellt wurden.

8. Dateien mit PID auflisten

Eine PID oder Prozess-ID ist eine eindeutige Kennung, die zum Kennzeichnen von Betriebssystemprozessen verwendet wird. Mit dem Befehl lsof können Administratoren Dateien basierend auf ihrer PID suchen und auflisten. Der folgende Befehl listet alle Dateien auf, die der Prozess-ID 1 zugeordnet sind.

$ lsof -p 1

Sie können auch mehrere PIDs angeben, indem Sie eine durch Kommas getrennte Liste verwenden. Achten Sie jedoch darauf, keine Leerzeichen zu verwenden, da der Befehl sonst nicht wie erwartet funktioniert.

$ lsof -p 1,2,3,^111

Dieser Befehl listet alle Dateien auf, die von den Prozessen 1, 2 und 3 geöffnet wurden. Er lässt die Dateien aus, die von Prozess 111 geöffnet wurden.

9. Dateien eines bestimmten Dateisystems auflisten

Die Linux-Dateisystemhierarchie ist sehr robust und ermöglicht es Administratoren, verschiedene Operationen darauf auszuführen. Sie können den Befehl lsof unter Linux verwenden, um alle geöffneten Dateien in einem bestimmten Dateisystem auszudrucken, wie unten gezeigt.

$ lsof /proc
$ lsof /run/
$ lsof /sys/

Die /proc Verzeichnis enthält Informationen über aktiv laufende Prozesse. Sie können diese Informationen einfach mit lsof in Linux- und BSD-Distributionen überprüfen.

10. Unix-Domain-Sockets auflisten

Mit dem Dienstprogramm lsof können wir alle Unix-Socket-Dateien oder IPC-Sockets (Inter-Process Communication) auflisten. Diese Dateien ermöglichen dem Host die Kommunikation mit anderen Prozessen in der Maschine. Werfen Sie einen kurzen Blick auf das folgende Beispiel, um zu sehen, wie dies in der Praxis funktioniert.

$ lsof -U

Verwenden Sie den folgenden lsof-Befehl, um alle Unix-Socket-Dateien zu finden, die eine eindeutige Prozess-ID haben.

$ lsof -U -a -p 18250

Ersetzen Sie 18250 durch die PID des Prozesses, den Sie sich ansehen möchten. Es zeigt alle Unix-Domain-Sockets an, die dieselbe PID enthalten.

11. Alle aktiven PIDs auflisten

Das Dienstprogramm lsof ermöglicht es Administratoren auch, alle derzeit laufenden Prozesse anhand ihrer PID aufzulisten. Dies ist in einer Reihe von Situationen nützlich, wie z. B. das Weiterleiten des Ergebnisses an den Linux-Kill-Befehl und so weiter.

$ lsof -t
$ lsof -t -i

Der erste Befehl führt einfach ein gewöhnliches lsof aus und lässt dann alle Ausgabefelder außer den PIDs weg. Die zweite Variante zeigt nur die PIDs der Netzwerkprozesse an. Wir können einfach nach einer bestimmten PID suchen und sie anderen Befehlen zuführen.

12. Dateien nach Gerät auflisten

Gerätedateien sind ein spezieller Dateityp in Linux- und BSD-Systemen. Sie fungieren normalerweise als Schnittstelle zu verschiedenen Gerätetreibern und verhalten sich nicht wie gewöhnliche Dateien. Das folgende Beispiel zeigt uns, wie alle geöffneten Dateien eines bestimmten Geräts aufgelistet werden.

$ lsof /dev/sda9 | less

Sie können Ihre Blockgeräte mit lsblk auflisten Befehl. Die meisten modernen Linux-Distributionen speichern diese Dateien im Verzeichnis /dev Verzeichnis.

13 Terminaldateien auflisten

Die /dev enthält auch spezielle Gerätedateien wie /dev/tty . Dies sind eindeutige Gerätedateien, die für einen bestimmten Prozess Zugriff auf das Terminal bieten. Sie können lsof nutzen, um alle offenen Dateien aufzulisten, die dem Terminal zugeordnet sind.

$ lsof /dev/tty*
$ lsof /dev/tty2
$ lsof /dev/ttyS0

Der erste Befehl listet offene Dateien für alle steuernden Terminals auf, während der zweite Befehl auf eine bestimmte Konsole abzielt. Das letzte Beispiel listet die Dateien auf, die Ihrer seriellen Schnittstelle (/dev/ttyS0) zugeordnet sind.

14. Geöffnete Dateien in Verzeichnissen auflisten

Sie können den Befehl lsof verwenden, um alle geöffneten Dateien in einem bestimmten Verzeichnis aufzulisten. Der folgende Befehl veranschaulicht dies anhand eines einfachen, aber praktischen Beispiels.

$ lsof +D Documents
$ sudo lsof +D ~/

Der erste Befehl listet alle geöffneten Dateien im Verzeichnis Dokumente auf. Der zweite Befehl listet alle geöffneten Dateien im Home-Verzeichnis und seinen Unterverzeichnissen auf. Der zweite Befehl funktioniert auch ohne sudo zeigt aber einige Warnungen in der Ausgabe.

15. Geöffnete Dateien in Verzeichnissen rekursiv auflisten

Der obige Befehl zeigt nur Dateien an, die im Documents-Verzeichnis geöffnet sind. Es werden keine geöffneten Dateien in den Unterverzeichnissen von Documents angezeigt. Glücklicherweise bietet lsof eine weitere praktische Option, um dies zu ermöglichen. Sehen Sie sich das folgende Beispiel an, um diese Option besser zu verstehen.

$ lsof +d Documents
$ sudo lsof +d ~/

Dieser Befehl zeigt alle geöffneten Dateien im Documents-Verzeichnis an und wechselt dann in die Unterverzeichnisse, falls vorhanden. Beachten Sie, dass dies sehr lange dauern kann, wenn Documents groß ist und viele Unterverzeichnisse hat.

16. Offene Dateien nach Prozess auflisten

Zuvor haben wir alle geöffneten Dateien anhand ihrer PIDs aufgelistet. Wir können aber auch die Liste der zu einem bestimmten Zeitpunkt aktiven Dateien mit ihrem Prozessnamen ausdrucken. Sehen Sie sich das Beispiel unten an und geben Sie es in Ihren bevorzugten Linux-Terminalemulator ein, um zu sehen, wie es funktioniert.

$ lsof -c chrome

Dieser Befehl gibt alle geöffneten Dateien aus, die vom Chrome-Prozess erzeugt werden. Beachten Sie, dass es mehrere Prozesse geben kann, deren Namen mit der Zeichenfolge chrome beginnen. Dieser Befehl zeigt sie alle in der Ausgabe an.

17. Übergeordnete Prozess-ID (PPID) auflisten

Das Dienstprogramm lsof ermöglicht es Administratoren, die Identifikationsnummer des übergeordneten Prozesses (PPID) neben regulären Ausgabefeldern aufzulisten. Sie müssen die Option -R übergeben, um dies zu aktivieren, wie unten dargestellt.

$ lsof -R
$ lsof -p [PID HERE] -R

Der erste Befehl gibt alle derzeit aktiven Prozesse zusammen mit ihren PPID-Informationen aus. Der letzte Befehl nimmt eine PID-Nummer und zeigt die PPID für diesen Prozess an.

18. PIDs auflisten, die eine Datei geöffnet haben

Der folgende Befehl listet alle Prozess-IDs auf, die eine bestimmte Datei geöffnet haben. Hier verwenden wir das -t früher eingeführte Option.

$ lsof -t /usr/share/mime/mime.cache

Da die Option -t nur die PIDs bereitstellt, nutzen wir sie, um unsere erwartete Ausgabe zu erzeugen. Dieser Befehl listet alle Prozess-IDs auf, die /usr/share/mime/mime.cache geöffnet haben Dokument.

19. Dateien basierend auf Dateideskriptoren auflisten

Wir können lsof anweisen, offene Dateien basierend auf Dateideskriptoren aufzulisten. Der folgende Befehl veranschaulicht, wie alle derzeit geöffneten Dateien gefunden werden, deren Feld FD(File Descriptor) auf cwd(Aktuelles Arbeitsverzeichnis) eingestellt ist.

$ lsof -d cwd
$ lsof -u xyz -d cwd -a

Der erste Befehl gibt jede geöffnete Datei im aktuellen Arbeitsverzeichnis aus. Der zweite Befehl listet Dateien auf, die dem Benutzer xyz gehören. Das -a Option ist für dieses Bit erforderlich, und der Befehl wird ohne diese Option nicht wie erwartet funktionieren.

20. Ausgabe für andere Programme anzeigen

Mit dem Befehl lsof können Administratoren Ausgaben zum Parsen mit externen Tools wie awk, Perl und der Programmiersprache C erzeugen. Sie müssen das -F bestehen Option neben Zeichenlisten zur Feldidentifikation.

$ lsof -F
$ lsof -FucsS

Der erste Befehl erzeugt eine nützliche Ausgabe, die mit dem Umleitungsoperator (> ) und später analysiert. Das zweite Beispiel modifiziert die Ausgabe, um zusätzliche Daten wie den Namen des Prozessbefehls, die Benutzer-ID, die Stream-Identifikation und die Größe aufzunehmen.

21. Fehlgeschlagene Elemente auflisten

Oft findet lsof einige vom Benutzer angeforderte Elemente nicht. Es ist ziemlich schwierig, diese Elemente zu finden, da die von lsof erzeugte Ausgabe sehr umfangreich ist. Zum Glück das -V Option erlaubt es lsof, diese Elemente sehr bequem auszudrucken.

$ lsof -V
$ lsof -c ssh -c http -V
$ lsof -p 12312312 -V

Das erste Beispiel listet alle solche Dateien auf, die nicht gefunden werden konnten. Das zweite Beispiel kann verwendet werden, um herauszufinden, ob es Prozessbefehle gibt, deren Namen mit ssh oder http beginnen. Das letzte Beispiel veranschaulicht die Verwendung von -V für Prozess-IDs.

22. TCP/TPI-Informationen anzeigen

Standardmäßig liefert lsof nur wenige Informationen zu TCP/TPI-Verbindungen. Es liefert nur Berichte über Verbindungszustände. Wir können jedoch die Option -T nutzen, um zusätzliche Berichtsfunktionen zu aktivieren, wie unten gezeigt.

$ lsof -i -Tq
$ lsof -i -Tqs

Der erste Befehl zeigt die Warteschlangenlänge (q) in seiner Ausgabe an. Der zweite Befehl zeigt den/die Verbindungsstatus(s) neben der Warteschlangenlänge an. Der Standardwert ist -Ts, und wenn Sie nur -T verwenden , werden alle TCP/TPI-Berichte deaktiviert.

23. Konvertierung der Portnummer deaktivieren

Das-P Mit dieser Option können Administratoren die Umwandlung von Portnummern in Namen deaktivieren, wenn sie nach Netzwerkdateien oder Unix-Sockets suchen. Es kann viel Zeit sparen, wenn zu viele solcher Dateien vorhanden sind.

$ lsof -i -Tqs -P

Sie können die von diesem Befehl benötigte Zeit mit der Zeit vergleichen, die von demselben Befehl ohne das -P benötigt wird Möglichkeit. Zu diesem Zweck verwenden wir ein Standard-Linux-Terminal-Tool namens time.

$ time lsof -i -Tqs
$ time lsof -i -Tqs -P

Die Ausführungszeit wurde in meiner Maschine auf ein Sechstel reduziert.

24. Konvertierung des Hostnamens deaktivieren

Wie Portnamen können wir auch die Konvertierung von Hostnamen aus Netzwerknummern deaktivieren. Es wird auch zu einer deutlichen Leistungssteigerung führen, wie Sie sehen werden. Der Linux-Time-Befehl wird sich wieder als nützlich erweisen, um dies zu beweisen.

$ lsof -i -n

Diesmal konvertiert lsof die Netzwerknummern nicht in Hostnamen. Verwenden Sie die folgenden Befehle, um die Änderung der Ausführungsgeschwindigkeit zu überprüfen.

$ time lsof -i
$ time lsof -i -n
$ time lsof -i -n -P

25. Wiederholungsmodus aktivieren

Der Befehl lsof in Linux bietet einen bequemen Wiederholungsmodus zum Überwachen von Live-Operationen, ohne die Ausgabekonsole zu verlassen. Sehen Sie sich die folgenden Beispiele an, um mehr darüber zu erfahren.

$ lsof -r 5 -i UDP

Dieser Befehl gibt alle 5 Sekunden alle laufenden UDP-Verbindungen aus, bis Sie den Befehl mit Strg + C beenden . Sie können auch +r verwenden Option, die automatisch beendet wird, wenn keine zusätzlichen Gebühren in der Ausgabe enthalten sind.

$ lsof +r 5 -i UDP

26. Alle Prozesse auflisten, die TCP-Ports überwachen

Mit dem Dienstprogramm lsof können wir alle Prozesse auflisten, die auf TCP-Ports lauschen. Wir werden mehrere bereits gezeigte Parameter verwenden, um diese Aufgabe zu erledigen. Sehen Sie sich das folgende Beispiel an, um herauszufinden, wie das funktioniert.

$ lsof -nP -i TCP -s TCP:LISTEN

Dieser Befehl deaktiviert die Konvertierung von Hostnamen und Portnamen mit dem -n und -P Option, die zusammengeführt werden. Das -s Die Option teilt lsof mit, dass wir nur an Prozessen interessiert sind, die auf TCP-Ports lauschen.

27. Auf Protokollen basierende Prozesse auflisten

Wir können auch spezifische Protokolle definieren, an denen wir interessiert sind. Ein kurzer Blick auf die folgenden Befehle wird Ihnen helfen, dies viel besser zu verstehen.

$ lsof -i TCP:https
$ lsof -i UDP:ntp

Der erste Befehl zeigt alle TCP-Dateien, die den https-Port verwenden, der standardmäßig 443 ist. Der letztere Befehl zeigt alle UDP-Dateien an, die den NTP-Port (Network Time Protocol) verwenden. Der nächste Befehl zeigt alle UDP-Dateien an, die IPv4-Verbindungen verwenden.

$ lsof -i4 -a -i UDP:ntp

28. Gesamtzahl der TCP/UDP-Verbindungen anzeigen

Wir können einige traditionelle Terminal-Tools wie grep und awk verwenden, um die Gesamtzahl der aktiven TCP- oder UDP-Verbindungen auszudrucken. Der folgende Befehl demonstriert dieses lsof zusammen mit awk, sort und uniq.

$ lsof -i | awk '{print $8}' | sort | uniq -c | grep 'TCP\|UDP'

Hier haben wir mehrere Befehle verwendet, um unsere Aufgabe auszuführen. Der awk-Teil gibt den NODE-Abschnitt der von lsof bereitgestellten Ausgabe aus, uniq zählt die Anzahl der Zeilen und grep sucht nach den angegebenen Mustern. Besuchen Sie unseren Leitfaden zum Linux-Befehl grep, um mehr über die Mustersuche zu erfahren.

29. Bestehende Netzwerkverbindungen auflisten

Der folgende Befehl zeigt, wie Sie alle etablierten Netzwerkverbindungen mit Standard-Linux-Tools erhalten. Wir werden zuerst alle Netzwerkdateien auflisten und dann bestimmte Daten aus der Ausgabe von lsof mit awk und grep extrahieren.

$ lsof -i -nP | grep ESTABLISHED | awk '{print $1, $9}' | sort -u

Das -nP Option deaktiviert die Konvertierung von Host- und Portnamen. Sie dient der Beschleunigung des Gesamtprozesses und ist nicht zwingend erforderlich.

30. Alle aktiven SSH-Verbindungen auflisten

Wir können auch alle SSH-Verbindungen auflisten, die von/zu unserem System mit lsof und grep hergestellt wurden. Werfen Sie einen kurzen Blick auf die nächsten Beispiele, um zu sehen, wie dies in Echtzeit funktioniert.

$ lsof -i TCP | grep ssh | grep ESTABLISHED
$ lsof -nP -iTCP -sTCP:ESTABLISHED | grep SSH

Beide oben genannten Befehle funktionieren ziemlich ähnlich. Letzteres ist jedoch schneller, da einige Sperrkennzeichen wie -n verwendet werden und -P .

31. Prozesse basierend auf Dateizugriff auflisten

Mit dem Befehl lsof können Systemadministratoren auch feststellen, welche Prozesse eine bestimmte Datei verwenden. Die folgenden Befehle zeigen dies unter Verwendung von Linux, das neben lsof.

befiehlt
$ lsof `which lsof`
$ lsof `which kate`

Indem wir also einfach die jeweilige Datei innerhalb von Backticks an lsof übergeben, können wir dies tun. Sie können jede der oben genannten Dateien durch Dateien ersetzen, die Sie überprüfen möchten, und die Prozesse auflisten, die darauf zugreifen. Verwenden Sie das -t Option, um nur die PIDs abzurufen.

$ lsof -t `which chrome`
$ lsof -t `which nmap`

32. Prozesse im Besitz des Benutzers beenden

Da lsof die Eigentumsinformationen offener Dateien bereitstellt, können wir damit einen Prozess vom Terminal aus beenden. Der folgende Befehl veranschaulicht, wie alle Prozesse erstellt werden, die dem Benutzer ABC gehören, indem der Befehl kill zusammen mit lsof verwendet wird.

$ sudo kill -9 `lsof -t -u ABC`

Sie sollten ABC durch einen tatsächlichen Benutzernamen ersetzen, um die von diesem Benutzer erzeugten Prozesse erfolgreich zu beenden. Für die neuesten Linux-Distributionen benötigen Sie sudo Privilegien, wenn Sie die Prozesse anderer Benutzer beenden möchten.

33. Dateien mit regulären Ausdrücken anzeigen

Mit dem Dienstprogramm lsof können Administratoren Informationen mithilfe regulärer Ausdrucksmuster herausfiltern. Sie müssen das angegebene Muster in zwei Schrägstriche (/) einfügen, damit dies funktioniert. Das folgende Beispiel listet beispielsweise alle Befehle auf, die mehr als sechs Zeichen enthalten.

$ lsof -c /^......*/

Beachten Sie, dass die Schrägstriche obligatorisch sind, wenn Sie reguläre Ausdrücke mit lsof verwenden. Jeder der sechs Punkte stellt ein einzelnes Zeichen dar, während das Sternchen (*) anzeigt, dass alles nach diesen sechs Zeichen zulässig ist.

34. Listen Sie auf, welche Prozesse NFS verwenden

Wir können ganz einfach alle Prozesse auflisten, die NFS-Ressourcen (Network File System) auf unserem Server beanspruchen. Der Befehl lsof in Linux legt das -N offen Option für diese Aufgabe. Sehen Sie sich das folgende Beispiel an, um es genauer zu verstehen.

$ lsof -N

Die Ausgabe dieses Befehls enthält Informationen wie die Prozess-IDs neben ihrem Einhängepunkt. Diese Daten lassen sich mit dem grep-Befehl sehr einfach extrahieren und helfen, Probleme mit Linux NAS- und SAN-Lösungen zu reduzieren.

35. Verwendete, aber gelöschte Dateien auflisten

Mit dem Befehl lsof können wir feststellen, welche Dateien früher von einigen Prozessen verwendet wurden und derzeit gelöscht werden. Dies ist in einer Reihe von Situationen praktisch, z. B. beim Überprüfen des Festplattenspeichers mit dem Linux-Befehl df.

$ lsof /var/log | grep -i "deleted"

Dieser Befehl listet die PID aller Dateien auf, die kürzlich vom Betriebssystemkernel gelöscht wurden, aber immer noch Speicherplatz auf Ihrem Computer beanspruchen. Sie können diese PIDs verwenden, um diese Prozesse zu beenden.

36. Anzahl der Einträge zählen

Da die von lsof erzeugte Ausgabe viele Einträge enthält, wird es oft schwierig, sie zu visualisieren. Wir können die Anzahl der Zeilen in dieser Ausgabe leicht zählen, indem wir diese Daten an ein praktisches und nützliches Linux-Tool namens wc weiterleiten. Sehen Sie sich das folgende Beispiel an, um zu sehen, wie das funktioniert.

$ lsof | wc -l
$ lsof -t -i -nP | wc -l

Die obigen Befehle leiten die Ausgabe von lsof an wc weiter und zeigen die Gesamtzahl der Zeilen an, die in der Ausgabe von lsof vorhanden sind.

37. Warnmeldungen aktivieren/deaktivieren

Einige lsof-Befehle zeigen möglicherweise beim Ausführen Warnmeldungen an. Glücklicherweise können wir diese Warnungen nach Belieben aktivieren/deaktivieren. Verwenden Sie den folgenden Befehl, um die Warnung in der Ausgabe von lsof zu deaktivieren.

$ lsof -t -i -nP -w

Das -w Option unterdrückt alle möglichen Warnungen. Sie sollten das +w verwenden Option zum erneuten Aktivieren dieser Funktion.

$ lsof -t -i -nP +w

Auf diese Weise können wir den Warnparameter nach Bedarf einstellen. Es ist oft nützlich, wenn es in Verbindung mit Linux-Shell-Skripten verwendet wird.

38. Versionsinformationen anzeigen

Das Dienstprogramm lsof kann einige Unterschiede zwischen Linux- und BSD-Varianten aufweisen. Wir können die Versionsinformationen von lsof auf diesen Maschinen auflisten und nützliche Informationen wie Revisionsnummer, Kompilierungsdatum, Compilerversion und so weiter sehen.

$ lsof -v

Es zeigt uns auch alle Konfigurationsparameter, die zum Erstellen des binären Endprodukts verwendet werden. Außerdem sind die Werte für die Compiler- und Loader-Flags sowohl für Systementwickler als auch für Administratoren nützlich.

39. Hilfeseite anzeigen

Die Hilfeseite von lsof enthält zusammengefasste Informationen zu allen verfügbaren Befehlszeilenoptionen und ihrer grundlegenden Verwendung. Sie können dies immer dann konsultieren, wenn Sie sich bei einer bestimmten Option nicht sicher sind.

$ lsof --help

Diese Seite gibt alle möglichen Kombinationen von lsof-Parametern zurück und ist sowohl für Anfänger als auch für erfahrene Linux-Benutzer nützlich.

40. Manuelle Seite anzeigen

Das Handbuch enthält eine eingehende Diskussion des lsof-Dienstprogramms und erklärt die verfügbaren Parameter im Detail. Sie sollten dieses Handbuch auf jeden Fall zu Rate ziehen, wenn Sie ein neuer Linux-Benutzer ohne vorherige Erfahrung mit lsof oder ähnlichen Linux-Terminalbefehlen sind.

$ man lsof

Dadurch erhalten Sie alle Informationen, die Sie benötigen, um mit lsof umzugehen und es für die täglichen Systemüberwachungsaufgaben zu verwenden. Es ist äußerst nützlich für neue Benutzer, und Sie sollten es immer konsultieren, wenn Sie auf Probleme stoßen. lsof.

Abschlussgedanken

Der Befehl lsof in Linux ist ein überzeugendes Überwachungstool, mit dem Administratoren visualisieren können, wie Prozesse verschiedene Dateien verwenden. Obwohl es für viele komplex erscheint, unterscheidet sich die Verwendung dieses Tools nicht von anderen herkömmlichen Befehlszeilen-Tools. Unsere Redakteure haben diese 40 einfachen, aber praktischen lsof-Linux-Beispiele ausgewählt, um Ihnen zu helfen, Ihre Reise mit diesem erstaunlichen Tool zu starten. Hoffentlich haben wir Ihnen die wesentlichen Informationen zur Verfügung gestellt, nach denen Sie gesucht haben. Sie sollten jetzt in der Lage sein, lsof selbst zu handhaben. Hinterlassen Sie uns einen Kommentar, wenn Sie Fragen zum Dienstprogramm lsof haben, und besuchen Sie uns regelmäßig, um weitere Anleitungen zu spannenden Linux-Befehlen zu erhalten.


Linux
  1. 14 Beispiele für SCP-Befehle zum sicheren Übertragen von Dateien unter Linux

  2. Befehl zum Herunterfahren von Linux

  3. 7 Beispiele für den lsof-Befehl unter Linux

  4. Linux-ls-Befehl - Dateien auflisten

  5. 15 Linux-lsof-Befehlsbeispiele (geöffnete Dateien identifizieren)

50 einfache und nützliche Beispiele für den Find-Befehl in Linux

So erstellen Sie Dateien in einem Linux-System:Ein ultimativer Leitfaden

Cat-Befehl in Linux:Wesentliche und erweiterte Beispiele

ls-Befehl unter Linux/UNIX

Linux-tar-Befehl zum Komprimieren und Extrahieren von Dateien

lsof-Befehl unter Linux mit Beispielen