Ceci est notre série de commandes Linux en cours et dans cet article, nous allons passer en revue lsof commande avec des exemples pratiques. lsof sens « Liste des fichiers ouverts » est utilisé pour savoir quels fichiers sont ouverts par quel processus. Comme nous le savons tous Linux/Unix considère tout comme des fichiers (tuyaux, prises, répertoires, dispositifs etc). Une des raisons d'utiliser lsof La commande est lorsqu'un disque ne peut pas être démonté car il indique que les fichiers sont en cours d'utilisation. Avec l'aide de cette commande, nous pouvons facilement identifier les fichiers en cours d'utilisation.
Dans l'exemple ci-dessous, il affichera une longue liste de fichiers ouverts dont certains sont extraits pour une meilleure compréhension qui affiche les colonnes comme Commander, PID, UTILISATEUR, FD, TAPER etc.
# lsof COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. init 1 racine cwdDIR253,0 4096 2 / init 1 racinertdDIR253,0 4096 2 / init 1 racineSMSREG 253,0 145180 147164 /sbin/init. init 1 racine memREG 253,0 1889704 190149 /lib/libc-2.12.so. init 1 racine 0u CHR 1,3 0t0 3764 /dev/null. init 1 racine 1uCHR 1,3 0t0 3764 /dev/null. init 1 racine 2u CHR 1,3 0t0 3764 /dev/null. init 1 racine 3r FIFO 0,8 0t0 8449 tuyau. init 1 racine 4w FIFO 0,8 0t0 8449 tuyau. init 1 racine 5r DIR 0,10 0 1 notifier. init 1 racine 6r DIR 0,10 0 1 notifier. init 1 racine 7u unix 0xc1513880 0t0 8450 socket
Les sections et ses valeurs sont explicites. Cependant, nous examinerons FD & TYPE colonnes plus précisément.
FD – signifie descripteur de fichier et peut voir certaines des valeurs comme :
Aussi dans FD numéros de colonne comme 1u est le descripteur de fichier réel et suivi de u, r, w de son mode comme :
TAPER – des fichiers et son identification.
La commande ci-dessous affichera la liste de tous les fichiers ouverts de l'utilisateur la menthe.
# lsof -u tecmintCOMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. sshd 1838 tecmint cwd DIR 253,0 4096 2 / sshd 1838 tecmint rtd DIR 253,0 4096 2 / sshd 1838 tecmint txt REG 253,0 532336 188129 /usr/sbin/sshd. sshd 1838 tecmint mem REG 253,0 19784 190237 /lib/libdl-2.12.so. sshd 1838 tecmint mem REG 253,0 122436 190247 /lib/libselinux.so.1. sshd 1838 tecmint mem REG 253,0 255968 190256 /lib/libgssapi_krb5.so.2.2. sshd 1838 tecmint mem REG 253,0 874580 190255 /lib/libkrb5.so.3.3
Pour connaître tout le processus en cours d'un port spécifique, utilisez simplement la commande suivante avec l'option -je. L'exemple ci-dessous répertorie tous les processus en cours du port 22.
# lsof -i TCP: 22COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. sshd 1471 racine 3u IPv4 12683 0t0 TCP *:ssh (ÉCOUTER) sshd 1471 racine 4u IPv6 12685 0t0 TCP *:ssh (ÉCOUTER)
Dans l'exemple ci-dessous montre seulement IPv4 et IPv6 les fichiers réseau s'ouvrent avec des commandes séparées.
# lsof -i 4COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpc. rpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954. rpcbind 1203 rpc 8u IPv4 11331 0t0 TCP *:sunrpc (ÉCOUTER) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdns. avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600# lsof -i 6COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. rpcbind 1203 rpc 9u IPv6 11333 0t0 UDP *:sunrpc. rpcbind 1203 rpc 10u IPv6 11335 0t0 UDP *:954. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (ÉCOUTER) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *:55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (ÉCOUTER) cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (ÉCOUTEZ)
Pour lister tous les processus en cours des fichiers ouverts de TCP Le port s'étend de 1-1024.
# lsof -i TCP: 1-1024COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (ÉCOUTER) cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (ÉCOUTEZ) sshd 1471 racine 4u IPv6 12685 0t0 TCP *:ssh (ÉCOUTER) maître 1551 racine 13u IPv6 12898 0t0 TCP localhost: smtp (LISTEN) sshd 1834 racine 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ÉTABLI) sshd 1838 tecmint 3u IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ÉTABLI) sshd 1871 racine 3r IPv4 15842 0t0 TCP 192.168.0.2:ssh->192.168.0.1:groove (ÉTABLI) httpd 1918 racine 5u IPv6 15991 0t0 TCP *:http (ÉCOUTER) httpd 1918 racine 7u IPv6 15995 0t0 TCP *:https (ÉCOUTER)
Ici, nous avons exclu racine utilisateur. Vous pouvez exclure un utilisateur particulier en utilisant ‘^’ avec la commande comme indiqué ci-dessus.
# lsof -i -u^rootCOMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpc. rpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954. rpcbind 1203 rpc 8u IPv4 11331 0t0 TCP *:sunrpc (ÉCOUTER) rpcbind 1203 rpc 9u IPv6 11333 0t0 UDP *:sunrpc. rpcbind 1203 rpc 10u IPv6 11335 0t0 UDP *:954. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (ÉCOUTER) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdns. avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600. rpc.statd 1277 rpcuser 5r IPv4 11836 0t0 UDP *:soap-beep. rpc.statd 1277 rpcuser 8u IPv4 11850 0t0 UDP *:55146. rpc.statd 1277 rpcuser 9u IPv4 11854 0t0 TCP *:32981 (ÉCOUTER) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *:55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (ÉCOUTER)
L'exemple ci-dessous montre l'utilisateur la menthe utilise la commande comme ping et /etc répertoire.
# lsof -i -u tecmint COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. bash 1839 tecmint cwd DIR 253,0 12288 15 /etc. ping 2525 tecmint cwd DIR 253,0 12288 15 /etc
La commande suivante avec option '-je' affiche la liste de toutes les connexions réseau 'ÉCOUTE & ÉTABLISSEMENT’.
# lsof -iCOMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpc. rpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (ÉCOUTER) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdns. avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (ÉCOUTER) cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (ÉCOUTEZ) cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (ÉCOUTEZ) sshd 1471 racine 3u IPv4 12683 0t0 TCP *:ssh (ÉCOUTER) maître 1551 racine 12u IPv4 12896 0t0 TCP localhost: smtp (LISTEN) maître 1551 racine 13u IPv6 12898 0t0 TCP localhost: smtp (LISTEN) sshd 1834 racine 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ÉTABLI) httpd 1918 racine 5u IPv6 15991 0t0 TCP *:http (ÉCOUTER) httpd 1918 racine 7u IPv6 15995 0t0 TCP *:https (ÉCOUTER) clock-app 2362 narad 21u IPv4 22591 0t0 TCP 192.168.0.2:45284->www.gov.com: http (CLOSE_WAIT) chrome 2377 narad 61u IPv4 25862 0t0 TCP 192.168.0.2:33358->maa03s04-in-f3.1e100.net: http (ÉTABLI) chrome 2377 narad 80u IPv4 25866 0t0 TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net: http (ÉTABLI)
L'exemple ci-dessous montre uniquement dont PID est 1 [Un].
# lsof -p 1COMMANDE PID UTILISATEUR FD TYPE DEVICE SIZE/OFF NOM DE NOEUD. init 1 racine cwd DIR 253,0 4096 2 / init 1 racine rtd DIR 253,0 4096 2 / init 1 racine txt REG 253,0 145180 147164 /sbin/init. init 1 mem racine REG 253,0 1889704 190149 /lib/libc-2.12.so. init 1 mem racine REG 253,0 142472 189970 /lib/ld-2.12.so
Parfois, vous devrez peut-être tuer tous les processus pour un utilisateur spécifique. La commande ci-dessous tue tous les processus de la menthe utilisateur.
# kill -9 `lsof -t -u tecmint`
Noter: Ici, il n'est pas possible de donner un exemple de toutes les options disponibles, ce guide est seulement pour montrer comment lsof la commande peut être utilisée. Vous pouvez vous référer à la page de manuel de lsof commande pour en savoir plus. Veuillez le partager si vous trouvez cet article utile via notre boîte de commentaires ci-dessous.