GNU/Linux >> Tutoriels Linux >  >> Linux

18 exemples de commandes rapides ‘lsof’ pour Linux Geeks

lsof est un utilitaire de ligne de commande pour tous les systèmes d'exploitation de type Unix et Linux pour vérifier la "liste des fichiers ouverts » Le nom « lsof » est lui-même dérivé de cette fonctionnalité. La commande lsof est principalement utilisée pour récupérer des informations sur les fichiers ouverts par divers processus. Les fichiers ouverts dans un système peuvent être de différents types, tels que des fichiers de disque, des sockets réseau, des canaux nommés et des périphériques. Cette caractéristique distinctive permet de déboguer et de mieux comprendre le système d'exploitation Linux.

Lorsque nous effectuons l'installation minimale de CentOS / RHEL / Ubuntu / Ouvrir SUSE , lsof ne fait pas partie de l'installation par défaut, utilisez donc la commande suivante pour installer la commande ou l'utilitaire lsof

Pour le système CentOS/RHEL,

~] # yum install lsof -y

Systèmes basés sur Debian (Ubuntu / Linux Mint)

~] # apt install lsof -y

Pour le système OpenSUSE,

~] # zypper installe lsof

La commande "lsof" est équipée de nombreuses options et commutateurs. Il sera très intéressant d'explorer certains de ces éléments importants. Dans cet article, nous discuterons de 18 exemples de commandes lsof utiles pour les geeks Linux.

Exemple :1) Listez tous les fichiers ouverts de votre système (lsof)

L'exécution de la commande lsof sans aucune option listera tous les fichiers ouverts de votre système qui appartiennent à tous les processus actifs.

Il suffit de taper la commande "lsof" sans aucune option sur la ligne de commande pour obtenir le résultat suivant,

Remarque :- Étant donné que la sortie de lsof donne beaucoup d'informations à STDOUT, il sera préférable d'utiliser le tube "|" opération pour voir cette sortie page par page.

[[email protected] ~]# lsof | MORECOMMAND PID UTILISATEUR DE TEND TYPE DE TYPE DE TYPE DE TYPE DE TYPE DISPOSITIF DE NOTE DE NOTE DE NOMES SYNDSMD 1 RACINE CWD DIR 253,0 4096 128 / SYSTEMD 1 RACINE ROTD RTD DIR 253,0 4096 128 / SystemD 1 Root TXT REG 253,0 1489960 50674818 / USR / LIB / SYSTEMD / SystemDsystemD 1 Root Mem Root ROC 253,0 20032 33628284 /USR/LIB64/LIBUUID.SO.1.3.0SYSTEMD 1 Root Mem ROC 253,0 252704 33745961 /USR/LIB64/LIBBLLKID.SO.1.1.0 

La sortie de la commande ci-dessus, si vous l'examinez attentivement, fournit de nombreuses informations avec de nombreux paramètres. Par exemple, traitez "systemd " (qui est un processus démon) a un identifiant de processus (PID ) de "1", l'utilisateur est "root ", Descripteur de fichier (FD ) comme "cwd " et etc. Le FD propose de nombreuses valeurs, car on sait que le descripteur de fichier est généré automatiquement pour tous les fichiers ouverts dans les systèmes Linux. Vous trouverez ci-dessous certaines des valeurs "FD" bien connues utilisées pour les commandes lsof,

Remarque :Dans certains cas, le "mem" est suivi d'un nombre et de divers caractères comme "r", "u", "w" etc. Ces caractères sont "r" pour lire, "w" pour écrire, "u" pour lire et écrivez.

Enfin, le "TYPE ” dans la sortie de la commande indique le type de fichier. Voici les types de fichiers standard dans les systèmes Linux.

Les autres champs affichés avec celui-ci sont les suivants,

  • APPAREIL –> Identifiant de l'appareil
  • TAILLE/OFF –> Taille réelle de ce processus (prise pendant l'exécution)
  • NOEUD –> Typiquement le numéro d'inode du répertoire ou du répertoire parent
  • NOM –> Chemin ou lien

Exemple :2) Répertorier les fichiers ouverts d'un système de fichiers spécifique (/proc)

Comme vous le savez, le "/proc " n'existera que pendant la durée de vie du système d'exploitation Linux, ce répertoire contient de nombreuses informations importantes sur les processus. L'exécution de "lsof" sur /proc générera une sortie intéressante à explorer,

 [[[[[e-mail protégé] ~] # LSOF / PROCCOMMAND PID Utilisateur Type FD Taille du périphérique / OFF NODE NODE NAMES Systemd 1 Root 9R REG 0,3 0 6690 / PROC / 1 / MONTINFOSYSTEMD 1 racine 11R REG 0,3 0 4026532018 / Proc / SwapsSystemd-j 462 Root 10R Reg 0,3 0 6936 / proc / sys / kernel / Hostnnamels de 5186 root 3R Dir 0,3 0 1 / Proclsof 5186 Root 6R Dir 0,3 0 28890 / PROC / 5186 / FD [[[[[[] Email protégé] ~]#

Comme mentionné précédemment, "lsof" de "lsof" lui-même est capturé ici et tous les détails sont affichés. Outre "lsof", il existe d'autres processus tels que systemd et rsyslogd qui sont des démons utilisés à des fins d'échange, de montage, etc.

De même, nous pouvons lister les fichiers ouverts d'un autre système de fichiers comme /var/log,

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

La commande lsof devient très pratique dans une situation où les commandes df et du montrent une utilisation différente du disque du même système de fichiers, en utilisant la commande lsof, nous pouvons trouver des fichiers qui ont été supprimés alors qu'ils étaient ouverts et utilisés par un processus,

[[email protected] ~]# lsof /var/log | grep -i "supprimé"

La commande ci-dessus vous donnera le pid des fichiers qui ont été supprimés mais ils existent toujours dans le système à l'état supprimé. Ainsi, pour libérer l'espace du système de fichiers, nous pouvons tuer le processus en toute sécurité par son pid.

Exemple :3) Liste des fichiers ouverts pour la commande "lsof"

"lsof" sur lui-même renvoie un message d'erreur,

[[email protected] ~]# lsof lsoflsof :erreur d'état sur lsof :aucun fichier ou répertoire de ce type lsof 4.87

Exemple :4) Liste des fichiers ouverts pour les utilisateurs (lsof -u )

"lsof" peut être utilisé pour tous les utilisateurs qui se sont connectés au système Linux. Dans ce cas, "lsof" affichera tous les fichiers ouverts pour l'utilisateur respectif.

Répertorier tous les fichiers ouverts pour l'utilisateur root

[[email protected] ~]# lsof -u root | Morecommand PID Utilisateur Type FD Taille de l'appareil / désactivé NODE NODE NAMES Systemd 1 ROOT CWD DIR 253,0 4096 128 / SystemD 1 Root RTD RTD DIR 253,0 4096 128 / SystemD 1 racine TXT REG 253,0 1620416 51034677 / USR / LIB / SystemD / SystemdSystemd 1 ROAIN MEM REG 253,0 20032 33628284 /USR/LIB64/LIBUUID.SO.1.3.0Systemd 1 Root MEM ROC 253,0 252704 33745961 /USR/LIB64/LIBBLLKID.SO.1.0Systemd 1 Root Mem ROC 253,0 90632 33628275 /USR/LIB64/LIBZ.SO.2.7Systemd 1 Root MEM ROC 253,0 153192 33618596 /USR/LIB64/LIBLZMA.SO.5.0.99Systemd 1 RootM MEM ROC 253,0 19888 33656455 / USR / LIB64 / LIBATTR. so.1.1.0…………………………………………………………

Liste des fichiers ouverts pour les utilisateurs non root, voyons tous les fichiers ouverts pour l'utilisateur linuxtechi,

[[email protected] ~]# lsof -u linuxtechi  | moreOr[[email protected] ~]# lsof -l -u linuxtechi | plus
 Commande PID UTILISATEUR DE TYPE FD TAILLE DE DISPOSITIF DE TYPE / OFF NODE NAMESSHD 2657 LINUXTECHI CWD DIR 253,0 4096 128 / SSHD 2657 LINUXTECHI RTD DIR 253,0 4096 128 / SSHD 2657 LINUXTECHI TXT REG 253,0 815520 34698340 / USR / SBIN / sshdshd 2657 Linuxtechi del Reg 0,4 23850 / Dev / Zerosshd 2657 Linuxtechi Mem Règl 253,0 15472 33831639 /Unsr/Lib64/security/pam_lasteclog.sosshd 2657 Linuxtechi Mem Reg 253,0 68192 33628305 /USR/LIB64/LIBBZ2.SO. 1.0.6SHD 2657 LINUXTECHI MEM REG 253,0 153192 33618596 / FR /LIB64/LIBLZMA.SO.5.0.99SSHD 2657 LINUXTECHI MEM REG 253,0 91496 33628319 /USR/LIB64/LIBELF-0.163.SOSFTP-SERV 2661 LINUXTELI MEM REG 253 ,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 LINUXTELI MEM REG 253,0 344224 33863974 / FRUITRIB64/LIBLDAP-2.4.SO.2.10.3SFTP-SERV 2661 LINUXTECHI MEM REG 253,0 19512 33618298 /USR/LIB64/LIBDL-2.17.SOSFTP-SERV 2661 Linuxtechi Mem Reg 253,0 2516624 33657314 /RIBCRYPTO.SO.1.0.2KSFTP-SERT 2661 LINUXTELI MEM REG 253,0 164432 33618285 / USR / LIB64 / LD-2.17.SOSFTP-SERV 2661 LINUXTECHI 0R FIFO 0,8 0T0 24046 PIPESFTP-SERV 2661 LINUXTECHI 1W FIFO 0,8 0T0 24047 PipesftP-Serv 2661 Linuxtechi 2W FIFO 0,8 0T0 24048 PipeBash 2670 Linuxtechi CWD DIR 253,0 79 17157147 /home/linuxtechi………………………………………………………………………………

Pour répertorier tous les fichiers ouverts à l'exception de l'utilisateur root, utilisez ^ (symbole caret) devant l'utilisateur root ( lsof -u ^root),

[[email protected] ~]# lsof -u ^root | Morecommand PID Tid-Ty User Type Type FD Taille du périphérique / Node Namedbus-Daem 1662 DBus CWD DIR 253,0 4096 128 / DBUS-DAEM 1662 DBUS RTD DIR 253,0 4096 128 / DBUS-DAEM 1662 DBUS TXT REG 253,0 441176 17133533 / 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/LIB64/LIBDL-2.17.SODBUS- DAEM 1662 DBUS MEM REG 253,0 398272 33628261 /USR/LIB64/LIBPCRE.SO.1.2.0DBUS-DAEM 1662 DBUS MEM REG 253,0 2107816 33618292 /USR/LIB64/LIBC-2.17.SO..................... ………………………………………………………………………………………………… 

Exemple :5) Répertorier tous les fichiers de domaine Internet et UNIX ouverts (lsof -i -U)

Utilisez l'option "-i -U" dans la commande lsof pour répertorier tous les fichiers de domaine Internet et UNIX ouverts sur votre système, l'exemple est illustré ci-dessous

 [[[[[[[[e-mail protégé] ~] # lsof -i -ucommand PID utilisateur FD Type de type FD Taille du périphérique / désactivé Numéros Nomsystemd 1 racine 12U UNIX 0XFFFF8800B8BAAB40 0t0 11075 / Run / SystemD / CGroups-AgentsSystemd 1 Root 13U UNIX 0XFFF8800B8BABAB2C0 0T0 11077 / COURANT / SystemD / PrivateSystemd 1 racine 42U IPv4 16576 0T0 TCP *:SUNRPC (Écouter) SystemD 1 racine 43U IPv4 16577 0T0 UDP *:sunrpcrpcbilind 1633 RPC 3U UNIX 0XFFF8800BAB8CF00 0T0 16574 /VAR/RUN/RPCBINT.SOCKRPCBind 1633 RPC 4U IPv4 16576 0t0 TCP *:SUNRPC (Écouter) RPCBind 1633 RPC 5U 5U IPv4 16577 0T0 UDP *:SUNRPCRPCBIND 1633 RPC 6U IPv6 16578 0T0 TCP *:SUNRPCC (Écouter) RPCBind 1633 RPC 7U IPv6 16579 0T0 UDP *:SUNRPCRPCBIND 1633 RPC 10U IPV4 16649 0T0 UDP *:960sshd      2532     Root 3U IPv4 21120 0t0 TCP 192.168.1.6.1.5:65110 (établi) SSHD 2532 Root 4u Unix 0xFFF8800BBEF3A40 0T0 21260 SUCKETSHD 2532 ROACHE 8U 8U UNIX 0XFFF8800B8AFD680 0T0 21298 /TMP/SSH-QHZ9BDTRVT/AGENT.2532SSHD 2536 ROOT IPv4             21191      0t0   TCP 192.168.1.6:ssh->192.168.1.5:65112 (ÉTABLI)sshd      2536       racine    4u unix 0xffff8800b8afd2c0……………t ……………   3    …………………………………………………… 

Exemple :6) Répertorier tous les fichiers réseau IPv4 ouverts (lsof -i 4)

Utilisez l'option "-i -4" dans la commande lsof pour répertorier tous les fichiers réseau ouverts pour IPv4,

 [[[[[e-mail protégé] ~] # LSOF -I 4COMMAND PID Utilisateur Type FD Taille de l'appareil / OFF NODE NOMS SYSTEMD 1 ROOT 42U IPv4 16576 0T0 TCP *:SUNRPC (Écouter) SystemD 1 racine 43U IPv4 16577 0T0 UDP *:sunrpcrpcbind 1633 RPC 4U IPv4 16576 0T0 TCP *:SUNRPC (ÉCOUTER) SSHD 2258 ROACHE 3U IPv4 19493 0T0 TCP *:SSH (Écouter) Master 2360 Root 13U IPv4 20087 0T0 TCP localhost:SMTP (Écouter) Dhclient 2494 Root 6U IPv4 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.168.1.5:65110 (établi) sshd 2536 racine 3U IPv4 21191 0t0 TCP 192.168.1.6 :ssh->192.168.1.5:65112 (ETABLI)sshd      2621       racine    3u  IPv4  23506      0t0  TCP 192.168.1.6 :ssh->192.168.1.9   s d6 SH2 sh6 5 sh2 d5 SH2 Root 3U IPv4 23863 0T0 TCP 192.168.1.6.9:49992.168.99:49992 (établi) sshd 2657 Linuxtechi 3U IPv4 23795 0t0 TCP 192.168.1.6.9:49990 (établi) SSHD 2660 LINUXTECHI 3U IPv4 23863 0t0  TCP 192.168.1.6:ssh->192.168.1.9:49992 (ÉTABLI)[[email protected] ~]#

Pour répertorier tous les fichiers réseau IPv4 ouverts utilisés par un processus spécifique dont l'ID de processus "any_number", des exemples sont présentés ci-dessous

Supposons que nous voulions répertorier tous les fichiers réseau IPv4 pour le processus rpcbind

Syntaxe : # lsof i 4 -a -p {process_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  rpc      7 01 t IP 7 01 t IP UDP *:sunrpcrpcbind 1633  rpc   10u  IPv4  16649      0t0  UDP *:960[[email protected] ~]#

Exemple :7) Répertorier tous les fichiers réseau ouverts pour IPv6 (lsof -i 6)

En supposant que le domaine ipv6 est pris en charge, la sortie de lsof sera quelque chose comme ci-dessous,

 [[[[[[e-mail protégé] ~] # LSOF -I 6COMMAND PID Utilisateur FD Type de type FD Taille de l'appareil / désactivé Nomsystemd 1 racine 44U IPv6 16578 0t0 TCP *:SUNRPC (Écouter) SystemD 1 racine 46U IPv6 16579 0T0 UDP *:sunrpcrpcbind 1633 RPC 6U IPv6 16578 0T0 TCP *:SUNRPCC (Écouter) RPCBind 1633 RPC 7U IPv6 16579 0T0 UDP *:SUNRPCCCBIND 1633 RPC 11U IPv6 16650 0T0 UDP *:960SHD 2258 root 4U IPv6 19504 0t0 TCP *:SSH (Écouter) Master 2360 Root IPv6 20088 0t0 TCP localhost localhost:SMTP (Écouter) Dhclient 2494 Root 21U IPv6 20952 0T0 UDP *:16498Dhclient 2514 Root 21u IPv6 20823 0T0 UDP *:34955HTTPD 2594 root 4U IPv6 22703 0t0 TCP *:http (écoute) httpd 2595 Apache 4U IPv6 22703 0t0  TCP * :http (ÉCOUTER)httpd    2596 apache    4u  IPv6  22703      0t0  TCP * :http (ÉCOUTER)httpd    2597 apache    4u  IPv6  22703      0t0  TCP * :http (ÉCOUTER)httpd    2598 apache v    4u 2 IP 03      0t0  TCP * :http (ÉCOUTER)httpd    2599 apache    4u  IPv6  22703      0t0  TCP * :http (ÉCOUTER)[[email protected] ~]#

Exemple :8) Liste tous les processus TCP et UDP en cours d'exécution sur un port spécifique (lsof -i TCP/UDP:port)

Supposons que nous voulions répertorier tous les processus TCP exécutés sur le port 80, utilisez la commande ci-dessous

[[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   IPv6 :     0 http (écouter) httpd 2596 apache ipv6 22703 0t0 TCP *:http (écouter) httpd 2597 Apache 4U IPv6 22703 0T0 TCP *:httpd 2598 Apache 4U IPv6 22703 0T0 TCP *:httpd 2599 Apache 4U IPv6  22703      0t0  TCP *:http (LISTEN)[[email protected] ~]#

Pour répertorier tous les fichiers ouverts sur le port TCP à partir de la plage de ports (1 à 1048), utilisez la commande suivante

 [[[[[[e-mail protégé] ~] # LSOF -I TCP:1-1048Command PID Utilisateur Type FD Taille du périphérique / OFF NODE NOMS SystemD 1 racine 41U IPv4 16863 0t0 TCP *:SUNRPC (Écouter) SystemD 1 racine 44U IPv6 16865 0T0 TCP *:SUNRPC (Écouter) RPCBind 1663 RPC 4U IPv4 16863 0T0 TCP *:SUNRPC (Écouter) RPCBind 1663 RPC 6U IPv6 16865 0T0 TCP *:SUNRPC (Écouter) SSHD 2294 ROACHE 3U IPv4 19949 0t0 TCP *:SSH (Écouter) SSHD 2294 root 4U IPv6 19965 0t0 TCP *:SSH (Écouter) Master 2433 Root 13U IPv4 21026 0T0 TCP localhost:SMTP (Écouter) Master 2433 Root 14U IPv6 21027 0t0 TCP localhost:SMTP (écoute) SSHD 2600 ROACH 3U IPv4 21737 0t0 TCP 192.168. 1.3:SSH-> 192.168.1.9:52393 (établi) SSHD 2659 racine 3U IPv4 22056 0t0 TCP 192.168.1.3:rssh->192.168.1.9:52486 (établie) SSHD 2663 root 3U IPv4 22123 0t0 TCP 192.168.1.3:ssh->192.168.1.9 :52489 (établi) httpd 2837 root 4U IPv6 26112 0T0 TCP *:http (écoute) httpd 2838 Apache 4U IPv6 26112 0T0 TCP *:httpd 2839 Apache 4U IPv6 26112 0T0 TCP *:httpd 2840 Apache 4U IPv6 26112 0T0 TCP *:http (écoute) httpd 2841 Apache 4U IPv6 26112 0t0 TCP *:httpd 2642 Apache 4U IPv6 26112 0T0 TCP *:http (écoute) sshd 2891 root 3U IPv4 26896 0t0 TCP 192.168.1.3 :ssh->192.168.1.9:53541 (ÉTABLI)sshd    2895 linuxtechi    3u  IPv4  26896      0t0   TCP 192.168.1.3:ssh->192.168.1.9:53541 (ÉTABLISSÉ)[[email protected] ~]#

Pour répertorier tous les processus UDP en cours d'exécution sur un port spécifique, utilisez la commande ci-dessous

[[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] ~]#

Remarque  :Pour répertorier tous les processus UDP ouverts sur votre système Linux, utilisez la commande "lsof -i UDP

Exemple :9) Liste tous les fichiers ouverts pour un appareil spécifique (lsof )

La commande suivante peut être utilisée pour lister tous les fichiers ouverts sur /dev/vda1.

Remarque : Dans ce cas le type de périphérique est virtuel, en général il peut être de type /dev/hd/ sd{numéro}

[email protected] ~]# lsof /dev/vda1 | Morecommand PID Utilisateur Type FD Taille du périphérique / OFF NODE NAMES SystemD 1 racine CWD DIR 253,1 4096 2 / SystemD 1 racine RTD RTD DIR 253,1 4096 2 / SystemD 1 racine TXT REG 253,1 1577264 262271 / LIB / SYSTEMD / SystemDSystemd 1 racine MEM REG 253,1 18976 262252 /LIB/X86_64-LIB/X86_64-LIBULULUD.SO.1.3.0Systemd 1 Root Mem Root 11,1 262408 262245 /LIB/X86_64-LILux-gnu/libblkid.so.1.0Systemd 1 racine MEM REG 253,1 14608 266364 /LIB/X86_64-LIB/X86_64-LiBDL-2.23.Sosystemd 1 Root Mem ROCK 253,1 456632 262207 /LIB/X86_64-LINUX-GNU/LIBPCRE.SO.3.13.2.2Systemd 1 Root Mem Reg 253,1 1868984 266362 /LIB/X86_64-LIB/X86_64-LIBC-LINUX-GNU/LIBC-23.SOSYSystemd 1 Root MEM ROC 253,1 138696 266361 /LIB/X86_64-LiBPTHADAD-2.23.Sosystemd 1 Root MEM RÉG REG 253,1 286824 261756 /lib/x86_64-linux-gnu/libmount.so.1.1.0

Exemple :10) Liste des processus avec des fichiers ouverts sur le système de fichiers NFS

Dans certaines situations, vous avez monté le système de fichiers nfs sur votre machine Linux, mais le serveur nfs est inaccessible et vous souhaitez répertorier tous les processus avec des fichiers ouverts sur ce système de fichiers nfs,

[[email protected] ~]# lsof -b 

Exemple :11) Liste des fichiers ouverts liés au terminal (lsof /dev/tty{nombre})

La commande suivante est utilisée pour tous les fichiers ouverts sur /dev/tty1.

Remarque :Dans ce cas, le type de terminal est "tty1". Tout autre type de terminal peut également être utilisé comme /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    2442 root    1u   CHR9     4 1 t 0 /tty1bash    2442 root    2u   CHR    4,1      0t0 4689 /dev/tty1bash    2442 root  255u   CHR    4,1      0t0 4689 /dev/tty1[[email protected] ~]#

Exemple :12) Liste PID, nom de commande, descripteur de fichier, numéro de périphérique et numéro d'inode de fichier (lsof -FpcfDi)

L'une des options intéressantes de "lsof" pour obtenir la sortie du champ PID (P) et du nom de commande (c) pour chaque processus, le descripteur de fichier (f), le numéro de périphérique de fichier (D) et le numéro d'inode de fichier (i) pour chaque fichier de chaque processus, un exemple est illustré ci-dessous

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

Remarque : Une longue liste de sorties s'affiche, mais elle est écourtée pour économiser de l'espace.

Exemple :13) Lister toutes les connexions réseau (lsof -i)

Utilisez l'option "-i" dans la commande lsof pour répertorier tous les processus ou commandes liés au réseau, l'exemple est illustré ci-dessous,

 [[[[[e-mail protégé] ~] # LSOF -ICMOMMAND UTILISATEUR PID Type FD Taille du périphérique / OFF NODE NAMES SYSTEMD 1 RACINE 41U IPv4 16863 0T0 TCP *:SUNRPC (ÉCOUT) SystemD 1 racine 43U IPv4 16864 0T0 UDP *:SUNRPCRPCBIND 1663 RPC 4U IPv4 16863 0t0 TCP *:SUNRPC (ÉCOUTER) RPCBind 1663 RPC 5U IPv4 16864 0T0 UDP *:SunrpcrpCBind 1663 RPC 11U IPv6 17051 0T0 UDP *:988SSHD 2294 ROACHE 3U IPV4 19949 0t0 TCP *:SSH (Écouter) SSHD 2294 ROAD 4U IPV6 19965 0T0 TCP *:ssh (écoute) RPC.StatD 2300 RPCuser 10U IPv6 19974 0T0 UDP *:48486RPC.Stat 2300 RPCuser 11U IPv6 20045 0T0 TCP *:39334 (Écouter) RPC.MOUNT 2311 ROOT 7U IPV4 19897 0T0 UDP *:MountDRPC .mount 2311       root    8u  IPv4  19911      0t0  TCP *:mountd (LISTEN)master    2433       root    13u  IPv4  21026      0t0  TCP localhost:smtp (LISTEN)master    2433         racine      6 1       racine       4 u  v 6 1027 0T0 TCP localhost:SMTP (écoute) 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.1.3:rsSh->192.168.168.9:52393 ( ÉTABLI)sshd      2659       root    3u  IPv4  22056      0t0  TCP 192.168.1.3:ssh->192.168.1.9:52486 (ÉTABLI)[[email protected] ~]#

Exemple :14) Trouver le fichier de socket IPv4/IPv6

Pour trouver le fichier de socket IPv4, utilisez la commande ci-dessous, remplacez l'adresse IP par l'adresse IP de votre système

[[email protected] ~]# lsof [email protected]COMMAND  PID       USER   FD    TYPE DEVICE TYPE/OFF NODE NAMEsshd    2600       root    3u  IPv4  21737      0t0  TCP 192.168.1.3:ssh->192.9165.3SH 2659 RACINE 3U IPv4 22056 0t0 TCP 192.168.1.3:rsSh->192.168.99:52486 (établie) Root 2663 racine 3U IPv4 22123 0t0 TCP 192.168.1.3.99:52489 (établi) SSHD 2724 Root 3U IPv4 25004 0t0 TCP 192.168.1.3:rsSh->192.168.1.9:52848 (établi) sshd 2728 Linuxtechi 3U IPv4 25004 0t0 TCP 192.168.1.3:rsh->192.168.1.9:52848 (établi) [[Email protégé] ~] # /pré> 

Pour trouver un fichier de socket IP version 6 par une adresse numérique sous forme de deux-points associée contenant une série de zéros - par exemple, l'adresse de bouclage (127.0.0.1), utilisez la commande et les options ci-dessous :

[[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] ~]#

Exemple :15) Liste tous les processus ou commandes appartenant à un ID de processus (lsof -p )

Supposons que nous voulions répertorier tous les processus ou commandes appartenant à un identifiant de processus spécifique, l'exemple est illustré ci-dessous

[[email protected] ~]# lsof -p 2842 | Morecommand PID Utilisateur Type FD Taille du périphérique / désactivé NODE NODEHTTPD 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 / httpdhttpd 2842 Apache MEM REG 253,0 110808 33618576 /USR/LIB64/LIBRESOLV-2.17.SOHTTPD 2842 Apache Mem Reg 253,0 27512 33618564 /UBNSSR/LIB64/LIBNSS_DNS-2.17.SOHTTPD 2842 Apache Mem Reg 253,0 57824 33618566 / USR / LIB64 / libnss_files-2.17.SOHTTPD 2842 Apache Mem Reg 253,0 27808 17080385 /FR/MIB64/HTTPD/MODULES/MOD_CGI.SOHTTPD 2842 Apache Mem REG 253,0 68192 33628305 /USR/LIB64/LIBBZ2.SO.1.0.6............. ……………………………………… 

Exemple :16) Tuez tous les processus appartenant à un utilisateur spécifique

La commande lsof devient très pratique lorsque nous voulons tuer tous les processus appartenant à un utilisateur spécifique, l'exemple ci-dessous tuera tous les processus appartenant à l'utilisateur linuxtechi

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

Exemple :17) Liste tous les fichiers ouverts dans un répertoire spécifique (lsod +D )

Supposons que nous voulions lister tous les fichiers ouverts sous le répertoire /var/log, puis utiliser la commande lsof suivante,

[[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.logwpa_suppl 1840 root 3w reg 253,0 240 392280 /var/log/wpa_supplicant.logtuned 2295 root 3w reg 253,0 6000 17713597 /var/log/tuned/tuned.logrsyslogd 2296 root 6w reg 253,0 7118 392279 / Var / Log / CronrsysLogd 2296 Root 7W Reg 253,0 449328 338975 / Var / Log / MessagesSysLogd 2296 Root 8W Reg 253,0 26038 338976 / VaR / Log / SecurersysLogd 2296 Root 9W Reg 253,0 1576 338977 / Var / Log / Maillogrsyslogd 2296 Root 10W Reg 253 , 0 9458 138 /var/log/boot.loghttpdtPD 2837 Root 2W Reg 253,0 2829 34768157 / VaR / HTTPDTPD 2837 Root 7W Reg 253,0 0 34824416 / 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 / VAR / HTTPDTPD 2839 Apache 7W Reg 253,0 0 34824416 / Var / Log / httpd / Access_loghttpd 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] ~]#

Remarque : 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.

Lire aussi :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 et ls also can be explored in combination of “lsof” command.

Lire aussiHow to Enable Timestamp in Linux History Command Output


Linux
  1. 8 exemples de commandes Quick Date sous Linux

  2. 16 exemples de commandes Quick Cat sous Linux

  3. 12 exemples de commandes IP pour les utilisateurs Linux

  4. Commande Linux killall pour les débutants (8 exemples)

  5. 7 Exemples de commande lsof sous Linux

Commande de localisation Linux pour les débutants (8 exemples)

16 exemples pratiques de commande Linux LS pour les débutants

Explication de la commande Linux mv pour les débutants (8 exemples)

Tutoriel de commande Linux lsof pour les débutants (15 exemples)

Commande lsof sous Linux (10 exemples)

15+ exemples pour la commande Linux cURL