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

18 Beispiele für schnelle „lsof“-Befehle für Linux-Geeks

lsof ist ein Befehlszeilenprogramm für alle Unix- und Linux-ähnlichen Betriebssysteme, um die „Liste der offenen Dateien zu überprüfen ” Der Name „lsof“ selbst leitet sich von dieser Funktionalität ab. Der Befehl lsof wird hauptsächlich verwendet, um Informationen über Dateien abzurufen, die von verschiedenen Prozessen geöffnet werden. Offene Dateien in einem System können unterschiedlicher Art sein, wie Festplattendateien, Netzwerk-Sockets, benannte Pipes und Geräte. Diese Besonderheit ermöglicht es, das Linux-Betriebssystem besser zu debuggen und zu verstehen.

Wenn wir die minimale Installation von CentOS durchführen / RHEL / Ubuntu / OpenSUSE , lsof ist nicht Teil der Standardinstallation, verwenden Sie also den folgenden Befehl, um den Befehl oder das Dienstprogramm lsof zu installieren

Für CentOS/RHEL-System,

~] # yum installiere lsof -y

Debian-basierte Systeme (Ubuntu / Linux Mint)

~] # apt install lsof -y

Für das OpenSUSE-System

~] # zypper installiert lsof

Der Befehl „lsof“ ist mit vielen Optionen und Schaltern ausgestattet. Es wird sehr interessant sein, einige dieser wichtigen zu erforschen. In diesem Artikel werden wir 18 nützliche lsof-Befehlsbeispiele für Linux-Freaks diskutieren.

Beispiel:1) Alle geöffneten Dateien Ihres Systems auflisten (lsof)

Wenn Sie den Befehl lsof ohne Optionen ausführen, werden alle geöffneten Dateien Ihres Systems aufgelistet, die zu allen aktiven Prozessen gehören.

Wenn Sie einfach den Befehl „lsof“ ohne Optionen in der Befehlszeile eingeben, erhalten Sie die folgende Ausgabe,

Hinweis :- Da die lsof-Ausgabe viele Informationen an STDOUT gibt, ist es besser, die Pipe „|“ zu verwenden. Vorgang, um diese Ausgabe Seite für Seite zu sehen.

[[email protected] ~]# lsof | MoreCommand Pid TID -Benutzer FD -Gerätegröße/Aus -Knoten -NamenSystem 1 Root CWD DIR 253,0 4096 128/systemd 1 root rtd dir 253,0 4096 128/systemd 1 root txt reg 253,0 1489960 50674818/usr/lib/systemd/systemd/ SystemdSystemd 1 Root mem Reg 253,0 20032 33628284 /USR/LIB64/libuuid.so.1.3.0Systemd 1 Root mem reg 253,0 252704 33745961 /usr/lib64/libblkid.so.1.1.1.0 

Die obige Befehlsausgabe liefert bei sorgfältiger Untersuchung viele Informationen mit vielen Parametern. Verarbeiten Sie beispielsweise „systemd “ (was ein Daemon-Prozess ist) hat eine Prozess-ID (PID ) von „1“ ist der Benutzer „root “, Dateideskriptor (FD ) als „cwd ” usw. Der FD kommt mit vielen Werten, da man sich bewusst ist, dass der File Descriptor automatisch für alle geöffneten Dateien in Linux-Systemen generiert wird. Nachfolgend sind einige der bekannten „FD“-Werte aufgeführt, die für lsof-Befehle verwendet werden,

Hinweis :In einigen Fällen folgen auf das „mem“ eine Zahl und verschiedene Zeichen wie „r“, „u“, „w“ usw. Diese Zeichen sind „r“ für Lesen, „w“ für Schreiben, „u“ für Lesen und schreibe.

Schließlich wird der „TYP “ in der Befehlsausgabe gibt den Dateityp an. Im Folgenden sind die Standardtypen von Dateien in Linux-Systemen aufgeführt.

Die anderen Felder, die zusammen damit angezeigt werden, lauten wie folgt:

  • GERÄT –> Geräte-ID
  • GRÖSSE/AUS –> Tatsächliche Größe dieses Prozesses (während der Laufzeit gemessen)
  • KNOTEN –> Typischerweise Inode-Nummer des Verzeichnisses oder übergeordneten Verzeichnisses
  • NAME –> Pfad oder Link

Beispiel:2) Auflisten offener Dateien eines bestimmten Dateisystems (/proc)

Wie Sie wissen, ist die Datei „/proc “ wird nur während der Lebensdauer des Linux-Betriebssystems existieren, dieses Verzeichnis enthält viele wichtige prozessbezogene Informationen. Die Ausführung von „lsof“ auf /proc wird interessante Ergebnisse liefern, die wir untersuchen können,

 [[E -Mail geschützt] ~]# LSOF /Proccommand PID -Benutzer FD -Typ Gerätegröße /Aus -Knoten -NamenSystem 1 Root 9r Reg 0,3 0 6690 /Proc /1 /MountinFosystemd 1 Root 11r Reg 0,3 0 4026532018 /Proc /SwapsSystemd-J 462 Root 10r Reg 0,3 0 6936/Proc/sys/kernel/hostnamelsof 5186 root 3r dir 0,3 0 1/proclSof 5186 root 6r dir 0,3 0 28890/proc/5186/fd [[E-Mail geschützt] ~]#

Wie bereits erwähnt, wird hier „lsof“ von „lsof“ selbst erfasst und alle Details werden angezeigt. Abgesehen von „lsof“ gibt es andere Prozesse wie systemd und rsyslogd, die Daemons sind, die für Swap-, Mount- usw. Zwecke verwendet werden.

Ebenso können wir offene Dateien eines anderen Dateisystems wie /var/log auflisten,

[[email protected] ~]# lsof /var/log/

Der lsof-Befehl wird sehr praktisch in einer Situation, in der der df- und der du-Befehl unterschiedliche Festplattennutzung desselben Dateisystems anzeigen. Mit dem lsof-Befehl können wir Dateien finden, die entfernt wurden, während sie geöffnet und von einem Prozess verwendet wurden,

[[email protected] ~]# lsof /var/log | grep -i "gelöscht"

Der obige Befehl gibt Ihnen die PID von Dateien, die gelöscht wurden, aber im gelöschten Zustand noch im System vorhanden sind. Um also den Speicherplatz aus dem Dateisystem freizugeben, können wir den Prozess sicher durch seine PID beenden.

Beispiel:3) Liste der geöffneten Dateien für den „lsof“-Befehl

„lsof“ selbst gibt eine Fehlermeldung aus,

[[email protected] ~]# lsof lsoflof:Statusfehler bei lsof:Keine solche Datei oder Verzeichnis lsof 4.87

Beispiel:4) Liste offener Dateien für Benutzer (lsof -u )

„lsof“ kann für alle Benutzer verwendet werden, die sich am Linux-System angemeldet haben. In diesem Fall zeigt „lsof“ alle geöffneten Dateien für den jeweiligen Benutzer an.

Alle geöffneten Dateien für Root-Benutzer auflisten

[[email protected] ~]# lsof -u root | MoreCommand PID -Benutzer FD -Typ Gerätegröße/Aus -Knoten -NamenSystem 1 Root CWD DIR 253,0 4096 128/systemd 1 root rtd dir 253,0 4096 128/systemd 1 root txt reg 253,0 1620416 51034677/usr/lib/systemd/systemdSystemd 1 Wurzelmem Reg 253,0 20032 33628284 /usr/lib64/libuuid.so.1.3.0Systemd 1 Wurzelmem Reg 253,0 252704 33745961 /usr/lib64/libblkid 33628275 /usr/lib64/libz.so.1.2.7Systemd 1 Wurzelmem Reg 253,0 153192 33618596 /usr/lib64/liblzma so.1.1.0…………………………………………………………

Liste der geöffneten Dateien für Nicht-Root-Benutzer, sehen wir uns alle geöffneten Dateien für Linuxtechi-Benutzer an,

[[email protected] ~]# lsof -u linuxtechi  | moreOder[[email protected] ~]# lsof -l -u linuxtechi | mehr
 COMMAND PID USER FD TYPE Gerätegröße / OFF NODE NAMEsshd 2657 linuxtechi DIR CWD 253,0 4096 128 / sshd 2657 linuxtechi DIR rtd 253,0 4096 128 / sshd 2657 linuxtechi txt REG 253,0 815520 34698340 / usr / sbin / SSHDSSHD 2657 Linuxtechi del reg 0,4 23850/dev/zerosshd 2657 linuxtechi mem reg 253,0 15472 33831639 /usr/lib64/security/pam_lastlog.soshd 2657 linuxtechi mem reg 253,0 68192 33628305/usr. 1.0.6SSHD 2657 Linuxtechi mem reg 253,0 153192 33618596 /usr/lib64/liblzma ,0     14608 33618582 /usr/lib64/libutil-2.17.sosftp-serv 2661 linuxtechi  mem    REG              253,0     61856 33863972 /USR/LIB64/LIBLBER-2.4.SO.2.10.3SFTP-SERV 2661 LINUXTECHI MEM REG 253,0 344224 33863974 /USR/LIB64/LIBLDAP-2.4. 33618298 /usr/lib64/libdl-2.17.Sosftp-serv 2661 linuxtechi mem reg 253,0 2516624 33657314 /USR/LIB64/LIBCRYPTO.SO.1.0.2KSFTP-SERV. 236182. LD-2.17.SOSFTP-SERV 2661 Linuxtechi 0R FIFO 0,8 0T0 24046 Pipesftp-Service 2661 Linuxtechi 1W FIFO 0,8 0T0 24047 Pipesftp-Service 2661 Linuxtechi 2W Fifo 0,8 0t0 24048 Pipeftp 2670 linuxtechi /home/linuxtechi………………………………………………………………………

Um alle geöffneten Dateien außer dem Root-Benutzer aufzulisten, verwenden Sie ^(Caret-Symbol) vor dem Root-Benutzer ( lsof -u ^root),

[[email protected] ~]# lsof -u ^root | Morecommand Pid TID-Benutzer FD-Gerätegröße /Aus-Knoten mit dem NamenBus-DAM 1662 DBUS CWD DIR 253,0 4096 128 /DBUS-DAM 1662 DBUS RTD DIR 253,0 4096 128 /DBUS-DAEM 1662 DBUS TXT Reg 253,0 441176 1713353 / usr/bin/dbus-daemondbus-daem 1662 dbus mem reg 253,0 57824 33618566 /usr/lib64/libnss_files-2.17.Sodbus-daem 1662 dbus mem reg 253,0 19512 33618298 /Usr/lib6/libdl-2.sodus-wusr/lib6/libdl-2.sodus-wusr/lib6/liBdl-2.sodus-wusr/lib6/liBdl-2.1718298 /usr/lib6/libdl--2.17. DAEM 1662 DBUS MEM REG 253,0 398272 33628261 /USR/LIB64/LIBPCRE.SO.1.2.0DBUS-DAM 1662 DBUS MEM REG 253,0 2107816 33618292 /USR/LIB64/LIBC-2.17.17.17.17.17. …………………………………………………………………………………………

Beispiel:5) Alle offenen Internet- und UNIX-Domänendateien auflisten (lsof -i -U)

Verwenden Sie die Option „-i -U“ im Befehl lsof, um alle offenen Internet- und UNIX-Domänendateien auf Ihrem System aufzulisten, das Beispiel ist unten gezeigt

 [[E -Mail geschützt] ~]# lsof -i -ucommand PID -Benutzer FD -Typ Gerätegröße/Aus -Knoten -NamenSystem 1 Root 12U UNIX 0xffff8800B8BAAB40 0T0 11075/Run/systemd/cgroups -AgentSystem 1 Root 13U UNIX 0x 0XFFFFF8800B8BAB2C0 0T0 11077/RUNFF88800B8BAB2C0 0T0 11077/RUNFF88800B8BAB2C0 0T0 11077/RUNBE /systemd/privateSystemd 1 root 42u ipv4 16576 0t0 tcp *:sunrpc (hör) systemd 1 root 43u ipv4 16577 0t0 udp *:sunrpcrpcbind 1633 rpc 3u 0xFff8800bab8. *:sunrpc (hör) rpcbind 1633 rpc 5u ipv4 16577 0t0 udp *:sunrpcrpcbind 1633 rpc 6u ipv6 16578 0t0 tcp *:sunrpc (hör) rpcbind 1633 rpc 7u ipv6 16579 0:sunrpcbind *:sunrpcbind *:960sshd      2532     Root 3U IPv4 21120 0T0 TCP 192.168.1.6:SSH->192.168.1.5:65110 (etabliert) SSHD 2532 Root 4U UNIX 0xffff8800BBEF3A40 0T0 21260 SOCKTSSHD 2532 Wurzel 8u 8U 0xsff8800B8. IPv4 21191 0T0 TCP 192.168.1.6:ssh->192.168.1.5:65112 (NIEDERGELASSEN) sshd 2536 root 4U UNIX- 0xffff8800b8afd2c0 0T0 21363 Buchse .................................................................. ……………………………………………………

Beispiel:6) Alle offenen IPv4-Netzwerkdateien auflisten (lsof -i 4)

Verwenden Sie die Option „-i -4“ im Befehl lsof, um alle offenen Netzwerkdateien für IPv4 aufzulisten,

 [[E -Mail Protected] ~]# LSOF -I 4Command PID -Benutzer FD -Typ Gerätegröße/Aus -Knoten -NamenSystem 1 Root 42U IPv4 16576 0T0 TCP *:sunRPC (Hören) systemd 1 root 43u ipv4 16577 0T0 UDP *:sunrpcrpcbind 1633 RPC 4U IPv4 16576 0T0 TCP *:sunRPC (Hören) SSHD 2258 Root 3U IPv4 19493 0T0 TCP *:SSH (Hören) Master 2360 Root 13U IPv4 20087 0T0 TCP LocalHost:SMTP (Listen) DHClient 2494 Root 6U 6U 6U 6U 6U 20983 0T0 uDP *:bootpcdhclient 2494 root 20u ipv4 20951 0t0 udp *:24884dhclient 2514 root 6u ipv4 20866 0t0 udp *:bootpcsshd 2532 root 3u ipv4 21120 0t0 TCP 192.168.1.6:6:SSH-SSH-SHSH-FLOOt 3U192.168.1.5110 (Gradsshd) SSHSSH-SSH-FLOOt 3U192.168.1.5110 (Datenth) SSH-SHSH-H-4U192.168.1.1110 (Datenth) shtshd )192.168. TCP 192.168.1.6:ssh->192.168.1.5:65112 (EINRICHTET)sshd     2621       root    3u  IPv4  23506      0t0  TCP 192.168.1.6:ssh->192.168.1.9:65422 (sh 2  .5.5) root 3U IPv4 23863 0T0 TCP 192.168.1.6:ssh->192.168.1.9:49992 (NIEDERGELASSEN) sshd 2657 linuxtechi 3U IPv4 23795 0T0 TCP 192.168.1.6:ssh->192.168.1.9:49990 (NIEDERGELASSEN) sshd 2660 linuxtechi 3U IPv4 23863 0t0  TCP 192.168.1.6:ssh->192.168.1.9:49992 (EINRICHTET)[[email protected] ~]#

Um alle offenen IPv4-Netzwerkdateien aufzulisten, die von einem bestimmten Prozess verwendet werden, dessen Prozess-ID „any_number“ ist, werden unten Beispiele gezeigt

Nehmen wir an, wir möchten alle IPv4-Netzwerkdateien für den rpcbind-Prozess auflisten

Syntax: # lsof i 4 -a -p {Prozess_PID}

[[email protected] ~]# lsof -i 4 -a  -p 1633COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMErpcbind 1633  rpc    4u  IPv4  16576      0t0  TCP *:sunrpc (LISTEN)rpcbind 1633  IP 0   7 4 5   5 UDP *:sunrpcrpcbind 1633  rpc   10u  IPv4  16649      0t0  UDP *:960[[email protected] ~]#

Beispiel:7) Alle offenen Netzwerkdateien für IPv6 auflisten (lsof -i 6)

Unter der Annahme, dass die IPv6-Domäne unterstützt wird, sieht die Ausgabe von lsof in etwa so aus:

 [[E -Mail geschützt] ~]# lsof -i 6command pid user fd Typ Gerätegröße/Aus -Knoten -NamenSystem 1 Root 44U IPv6 16578 0T0 TCP *:sunRPC (Hören) systemd 1 root 46u ipv6 16579 0t0 UDP *:sunrpcrpcbind 1633 RPC 6U IPv6 16578 0T0 TCP *:sunrpc (Hören) RPCBind 1633 RPC 7U IPv6 16579 0T0 UDP *:sunrpcrpcbind 1633 RPC 11U IPv6 16650 0T0 ut0 TCP *:960SSHSHD 2258 Root 4U 4U IPV6 19504 0T0 TCP *:960SSH (SSHSHSSH 2258) 4U 4U 4U IPV6 19504 0T0:960SSH (SSHSSH 2258 2258 IPv6 20088 0T0 TCP LOCALHOST:SMTP (Hören) DHClient 2494 Root 21U IPv6 20952 0T0 UDP *:16498DHClient 2514 Root 21U IPv6 20823 0T0 UDP *:349555HTTPD 2594 Root 4U 4U 4U IPv6 22703 0:TCP. 0t0  TCP *:http (LISTEN)httpd    2596 apache    4u  IPv6  22703      0t0  TCP *:http (LISTEN)httpd    2597 apache    4u  IPv6  22703      0t0  TCP *:http (LISTEN)httpd    2598 apache    4 u 22 03      0t0  TCP *:http (LISTEN)httpd    2599 apache    4u  IPv6  22703      0t0  TCP *:http (LISTEN)[[email protected] ~]#

Beispiel:8) Alle TCP- und UDP-Prozesse auflisten, die auf einem bestimmten Port ausgeführt werden (lsof -i TCP/UDP:port)

Nehmen wir an, wir möchten alle TCP-Prozesse auflisten, die auf Port 80 ausgeführt werden, verwenden Sie den folgenden Befehl

[[email protected] ~]# lsof -i TCP:80COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEhttpd   2594   root    4u  IPv6  22703      0t0  TCP *:http (LISTEN)httpd   2595 apache    4u  IPv3  2 2 0  TCP:2 2 0 http (hör) httpd 2596 Apache 4U IPv6 22703 0T0 TCP *:http (Hören) httpd 2597 Apache 4U IPv6 22703 0T0 TCP *:http (Hören) httpd 2598 apache 4u ipv6 22703 0t0 tcp IPv6  22703      0t0  TCP *:http (LISTEN)[[email protected] ~]#

Um alle geöffneten Dateien auf dem TCP-Port aus dem Portbereich (1 bis 1048) aufzulisten, verwenden Sie den folgenden Befehl

 [[E -Mail Protected] ~]# LSOF -i TCP:1-1048Command PID -Benutzer FD -Typ Gerätegröße/Aus -Knoten -NamenSystem 1 Root 41U IPv4 16863 0T0 TCP *:sunrpc (hör) systemd 1 root 44u ipv6 16865 0T0 TCP *:sunrpc (hör) rpcbind 1663 rpc 4u ipv4 16863 0t0 tcp *:sunrpc (hör) rpcbind 1663 rpc 6u ipv6 16865 0t0 tcp *:sunrpc (hör) sshd 2294 root 3u ipv4 19949 0t0 tcp Root 4U IPv6 19965 0T0 TCP *:SSH (Hören) Master 2433 Root 13U IPv4 21026 0T0 TCP localhost:SMTP (Hören) Master 2433 14U IPv6 21027 0T0 TCP Localhost:STHD) SSHD 2600 Wurzel 3U 3U 3U 3U 21737 0T0 T0 TCP 192.168. 1.3:SSH-> 192.168.1.9:52393 (etabliert) SSHD 2659 Root 3U IPv4 22056 0T0 TCP 192.168.1.3:SSH->192.168.1.9:52486 (etabliert) SSHD 22.1.1.1.1.1.3u IPV4 22123 0t0>192.168.1.9 :52489 (etabliert) Httpd 2837 Root 4U IPv6 26112 0T0 TCP *:http (Hören) httpd 2838 Apache 4U IPv6 26112 0T0 TCP *:http (Hören) httpd 2839 aptt 4u ipv6 26112 0t0 tcp 4U IPv6 26112 0T0 TCP *:http (LISTEN) httpd 2841 Apache 4U IPv6 26112 0T0 TCP *:http (LISTEN) httpd 2842 Apache 4U IPv6 26112 0T0 TCP *:http (LISTEN) sshd 2891 root 3U IPv4 26896 0T0 TCP 192.168.1.3 :ssh->192.168.1.9:53541 (EINRICHTEN)sshd    2895 linuxtechi    3u  IPv4  26896     0t0  TCP 192.168.1.3:ssh->192.168.1.9:53541 (EINRICHTEN)[[email ] ~]#pre 

Um alle UDP-Prozesse aufzulisten, die auf einem bestimmten Port ausgeführt werden, verwenden Sie den folgenden Befehl

[[email protected] ~]# lsof -i UDP:16498COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEdhclient 2494 root   21u  IPv6  20952      0t0  UDP *:16498[[email protected] ~]#

Hinweis :Um alle offenen UDP-Prozesse auf Ihrem Linux-System aufzulisten, verwenden Sie den Befehl „lsof -i UDP

Beispiel:9) Alle geöffneten Dateien für ein bestimmtes Gerät auflisten (lsof )

Der folgende Befehl kann verwendet werden, um alle geöffneten Dateien auf /dev/vda1 aufzulisten.

Hinweis: In diesem Fall ist der Gerätetyp virtuell, im Allgemeinen kann dies vom Typ /dev/hd/ sd{Nummer}

sein
[email protected] ~]# lsof  /dev/vda1 | MoreCommand PID -Benutzer FD -Typ Gerätegröße /Aus -Knoten -NamenSystem 1 Root CWD DIR 253,1 4096 2 /systemd 1 root rtd dir 253,1 4096 2 /systemd 1 root txt reg 253,1 1577264 262271 /lib /systemd /systemdStemd 1 Wurzel Wurzel MEM Reg 253,1 18976 262252 /lib/x86_64-linux-nu/libuuid.so.1.3.0Systemd 1 Root mem Reg 253,1 262408 262245 /lib/x86_64-linux-gnu/libblkid MEM Reg 253,1 14608 266364 /lib/x86_64-linux-nu/libdl-2.23.Sosystemd 1 Root Mem Reg 253,1 456632 262207 /lib/x86_64-linux-gnu/libpcre.s.3.13.2system 1 root mem reg 253,1 1868984 266362 /lib/x86_64-linux-nu/libc-2.23.Sosystemd 1 Root mem reg 253,1 138696 266361 /lib/x86_64-linux-gnu/libpthread-2.23.Sosystem 1 MEM Reg 253,1 2868244.2.23. 261756 /lib/x86_64-linux-gnu/libmount.so.1.1.0

Beispiel:10) Prozesse mit offenen Dateien im NFS-Dateisystem auflisten

Es gibt einige Situationen, in denen Sie das NFS-Dateisystem auf Ihrem Linux-Rechner gemountet haben, aber auf den NFS-Server nicht zugegriffen werden kann und alle Prozesse mit offenen Dateien in diesem NFS-Dateisystem auflisten möchten,

[[email protected] ~]# lsof -b 

Beispiel:11) Terminalbezogene offene Dateien auflisten (lsof /dev/tty{number})

Der folgende Befehl wird für alle geöffneten Dateien auf /dev/tty1 verwendet.

Hinweis :In diesem Fall ist der Terminaltyp „tty1“. Jeder andere Terminaltyp kann auch verwendet werden, wie /dev/tty

[[email protected] ~]# lsof /dev/tty1COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEbash    2442 root    0u   CHR    4,1      0t0 4689 /dev/tty1bash    24   root    1u   CHR      4, t  /tty1bash    2442 root    2u   CHR    4,1      0t0 4689 /dev/tty1bash    2442 root  255u   CHR    4,1      0t0 4689 /dev/tty1[[email protected] ~]#

Beispiel:12) Liste PID, Befehlsname, Dateideskriptor, Gerätenummer und Datei-Inode-Nummer (lsof -FpcfDi)

Eine der interessanten Optionen in „lsof“, um PID(P)- und Befehlsname(c)-Feldausgaben für jeden Prozess, Dateideskriptor (f), Dateigerätenummer (D) und Datei-Inode-Nummer(i) für jede Datei zu erhalten Beispiel für jeden Prozess ist unten gezeigt

[[email protected] ~]# lsof -FpcfDi | morep1csystemdfcwdD0xfd00i128frtdD0xfd00i128ftxtD0xfd00i51034677fmemD0xfd00i33628284………………

Hinweis: Es wird eine lange Ausgabeliste angezeigt, die jedoch gekürzt wird, um Platz zu sparen.

Beispiel:13) Alle Netzwerkverbindungen auflisten (lsof -i)

Verwenden Sie die Option „-i“ im lsof-Befehl, um alle netzwerkbezogenen Prozesse oder Befehle aufzulisten, das Beispiel ist unten gezeigt,

 [[E -Mail geschützt] ~]# lsof -icommand PID -Benutzer FD -Typ -Gerätegröße/Aus -Knoten -NamenSystem 1 Root 41U IPv4 16863 0T0 TCP *:sunRPC (Hören) systemd 1 root 43u ipv4 16864 0T0 UDP *:sunrpcrpcbind 1663 rpc 4U IPv4 16863 0T0 TCP *:SunRPC (LISTEN) rpcbind 1663 RPC 5U IPv4 16864 0T0 UDP *:sunrpcrpcbind 1663 RPC 11U IPv6 17051 0T0 UDP *:988sshd 2294 root 3U IPv4 19949 0T0 TCP *:SSH (LISTEN) sshd 2294 root 4U IPv6 19965 0T0 TCP *:SSH (Hören) rpc.statd 2300 rpcuser 10U IPv6 19974 0T0 UDP *:48486RPC.STATD 2300 RPCUSER 11U IPv6 20045 0T0 TCP *:39334 (Hören) RPC.MOUND 2311 Wurzel .mount 2311       root    8u  IPv4  19911      0t0  TCP *:mountd (LISTEN)master    2433       root   13u  IPv4  21026      0t0  TCP localhost:smtp (LISTEN)master    2433       2433        u root   1  v 6  1027 0T0 TCP LOCALHOST:SMTP (Hören) DHClient 2563 Root 6U IPv4 21589 0T0 UDP *:Bootpcdhclient 2583 Root 21U IPv6 21365 0T0 UDP *:10368SSHD 2600 Root 3U IPv4 21737 0t0 TCP 192.168. ESTABLISHED)sshd      2659       root    3u  IPv4  22056      0t0  TCP 192.168.1.3:ssh->192.168.1.9:52486 (ESTABLISHED)[[email protected] ~]#

Beispiel:14) IPv4-/IPv6-Socket-Datei suchen

Um die IPv4-Socket-Datei zu finden, verwenden Sie den folgenden Befehl, ersetzen Sie die IP-Adresse durch Ihre System-IP

[[email protected] ~]# lsof [email protected]COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEsshd    2600       root    3u  IPv4  21737      0t0  TCP 192.168.1.3:ssh3.9ash->192.168 2659 Root 3U IPv4 22056 0T0 TCP 192.168.1.3:SSH->192.168.1.9:52486 (etabliert) SSHD 2663 Wurzel 3U IPv4 22123 0T0 TCP 192.168.1.3:SH->192.168.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.19.168. 25004 0T0 TCP 192.168.1.3:Ssh->192.168.1.9:52848 (etabliert) SSHD 2728 Linuxtechi 3U IPv4 25004 0T0 TCP 192.168.1.3:Ssh-42.168.1.1.9:52848 (etabliert) [[[[[[[[[[[[[[[[[[[[) E-Mail) ~) ~] ~]#pha. /pre> 

Um eine IP-Socket-Datei der Version 6 anhand einer zugehörigen numerischen Adresse in Doppelpunktform zu finden, die eine Reihe von Nullen enthält – z. B. die Loopback-Adresse (127.0.0.1), verwenden Sie den folgenden Befehl und die folgenden Optionen:

[[email protected] ~]# lsof [email protected][::1]COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEmaster  2433 root   14u  IPv6  21027      0t0  TCP localhost:smtp (LISTEN)[[email protected] ~]#

Beispiel:15) Alle Prozesse oder Befehle auflisten, die zu einer Prozess-ID gehören (lsof -p )

Nehmen wir an, wir möchten alle Prozesse oder Befehle auflisten, die zu einer bestimmten Prozess-ID gehören. Das Beispiel wird unten gezeigt

[[email protected] ~]# lsof -p 2842 | MoreCommand PID Benutzer FD -Typ Gerätegröße /Off Node nameHttpd 2842 Apache CWD DIR 253,0 4096 128 /httpd 2842 Apache RTD DIR 253,0 4096 128 /httpd 2842 Apache Txt Reg 253,0 523680 34641136 /usr /SBIN /HTTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTPDHTTPDHTPDHTPDTPDHTPDTPDHTTPDTPDTPD. MEM Reg 253,0 110808 33618576 /usr/lib64/libresolv-2.17.sohttpd 2842 APache REG 253,0 27512 33618564 /USR/LIB64/LIBNS_DNS-2.17.SOHTTPD 2842 APache MEM REG 253,0.17 libnss_files-2.17.sohttpd 2842 apache mem REG 253,0 27808 17080385 /usr/lib64/httpd/modules/mod_cgi.sohttpd 2842 apache mem REG 253,0 68192 33628305 /usr/lib64/libbz2.so.1.0.6......... ………………………………………

Beispiel:16) Beenden Sie alle Prozesse, die zu einem bestimmten Benutzer gehören

Der Befehl lsof wird sehr praktisch, wenn wir alle Prozesse beenden möchten, die einem bestimmten Benutzer gehören. Das folgende Beispiel beendet alle Prozesse, die dem Benutzer linuxtechi gehören

[[email protected] ~]# kill -9 `lsof -t -u linuxtechi`[[email protected] ~]#

Beispiel:17) Alle geöffneten Dateien in einem bestimmten Verzeichnis auflisten (lsod +D )

Nehmen wir an, wir wollen alle offenen Dateien im Verzeichnis /var/log auflisten und verwenden dann den folgenden lsof-Befehl,

[[email protected] ~]# lsof +D /var/log/COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAMEauditd    1635   root    4w   REG  253,0  1177238 51031316 /var/log/audit/audit.log8wpa_sup 1 Wurzel 3W reg 253,0 240 392280 /var/log/wpa_supplicant 2296 root 7W REG 253,0 449.328 338975 / var / log / messagesrsyslogd 2296 root 8W REG 26038 253,0 338.976 / var / log / securersyslogd 2296 root 9W REG 253,0 1576 338977 / var / log / maillogrsyslogd 2296 Wurzel 10w REG 253 , 0 9458 138 2837 /var/log/boot.loghttpd root 2W REG 253,0 2829 34.768.157 / var / log / httpd / error_loghttpd 2837 root 7W REG 253,0 0 34.824.416 / var / log / httpd / access_loghttpd 2838 Apache 2W REG 253,0     2829 34768157 /var/log/httpd/error_loghttpd     2838 ap ACHE 7W Reg 253,0 0 34824416/var/log/httpd/access_loghttpd 2839 Apache 2W Reg 253,0 2829 34768157/var/log/httpd/error_loghttpd 2839 apache 7w regs 253,0 0 34824416/var/var/log/loghtpd/log 253,0 0 34824416/var/var/var/var/var/var/var/var/var/var/var/log/loghtpd/var) 2840 apache    2w   REG  253,0     2829 34768157 /var/log/httpd/error_loghttpd     2840 apache    7w   REG  253,0        0 34824416 /var/log/httpd/access_loghttpd     2841 apache    2w   REG  253,0     2829 34768157 /var/log/httpd/ error_loghttpd     2841 apache    7w   REG  253,0        0 34824416 /var/log/httpd/access_loghttpd     2842 apache    2w   REG  253,0     2829 34768157 /var/log/httpd/error_loghttpd     2842 apache    7w   REG  253,0        0 34824416 /var/log/httpd /access_log[[email protected] ~]#

Hinweis: In above command if we use +D option then lsof will list all open files of a directory recursively and if you don’t want to list open files of directory recursively then use “+d” option

Example:18) “lsof” to check who opened the log file (to find PID)

The following command option is used to find who opened the /var/log/httpd/access.log file and what is the PID of that process. And then with “ps -ef” command we can find exact user

[[email protected] ~]# lsof -t /var/log/httpd/access_log310931103111311231133114[[email protected] ~]#[[email protected] ~]# ps -ef | grep -E "3109|3110|3111|3112|3113|3114" | grep -v grepor[[email protected] ~]# ps -fp "$(lsof -t /var/log/httpd/access_log | xargs echo)"root      3109     1  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUNDapache    3110  3109  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUNDapache    3111  3109  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUNDapache    3112  3109  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUNDapache    3113  3109  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUNDapache    3114  3109  0 03:36 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND[[email protected] ~]#

Many options of the “lsof” command can be combined for multiple purposes as below are some combination of flags “-c”, “-u” and “-I”. For more details refer the manual page.

Auch lesen :11 Xargs Command Examples in Linux

The below command combination will give output every 1 second about “linuxtechi” home directory what all the files opened repeatedly.

[email protected] ~}# lsof -u linuxtechi -c init -a -r1=======COMMAND   PID       USER   FD   TYPE DEVICE SIZE/OFF    NODE NAMEinita.sh 2971 linuxtechi  cwd    DIR    8,1     4096  393218 /home/linuxtechiinita.sh 2971 linuxtechi  rtd    DIR    8,1     4096       2 /inita.sh 2971 linuxtechi  txt    REG    8,1    83344  524367 /bin/dashinita.sh 2971 linuxtechi  mem    REG    8,1  1434567 1443695 /lib/i386-linux-gnu/libc-2.13.so……………………………………………………………………………

Conclusion:

As mentioned in the introduction section “lsof” is very powerful and useful command in Linux based distributions. This command and options listed can be used for various purposes like debugging, troubleshooting and triaging Linux processes. Mentioned options and combinations if tried, will help one to establish thorough understanding of “lsof” command. Other commands like lstat , stat and ls also can be explored in combination of “lsof” command.

Auch lesenHow to Enable Timestamp in Linux History Command Output


Linux
  1. 8 Beispiele für schnelle Datumsbefehle in Linux

  2. 16 Beispiele für schnelle Cat-Befehle unter Linux

  3. 12 IP-Befehlsbeispiele für Linux-Benutzer

  4. Linux-Killall-Befehl für Anfänger (8 Beispiele)

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

Linux-Suchbefehl für Anfänger (8 Beispiele)

16 praktische Beispiele für Linux LS-Befehle für Anfänger

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)

Linux lsof Command Tutorial für Anfänger (15 Beispiele)

lsof-Befehl unter Linux (10 Beispiele)

Über 15 Beispiele für Linux-cURL-Befehle