Esta es nuestra serie continua de comandos de Linux y en este artículo vamos a revisar lsof comando con ejemplos prácticos. lsof sentido "Archivos abiertos LiSt" se utiliza para averiguar qué archivos se abren mediante qué proceso. Como todos sabemos Linux / Unix considera todo como archivos (tubería, enchufes, directorios, dispositivos etc). Una de las razones para usar lsof El comando es cuando un disco no se puede desmontar porque dice que los archivos se están utilizando. Con la ayuda de este comando podemos identificar fácilmente los archivos que están en uso.
En el siguiente ejemplo, mostrará una lista larga de archivos abiertos, algunos de ellos se extraen para una mejor comprensión, que muestra las columnas como Mando, PID, USUARIO, FD, ESCRIBE etc.
# lsof COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. init 1 raíz cwdDIR253,0 4096 2 / init 1 raízrtdDIR253,0 4096 2 / init 1 raízTXTREG 253,0 145180 147164 / sbin / init. init 1 raíz memREG 253,0 1889704 190149 /lib/libc-2.12.so. init 1 raíz 0u CHR 1,3 0t0 3764 / dev / null. init 1 raíz 1uCHR 1,3 0t0 3764 / dev / null. init 1 raíz 2u CHR 1,3 0t0 3764 / dev / null. init 1 raíz 3r FIFO Tubo 0,8 0t0 8449. init 1 raíz 4w FIFO Tubo 0,8 0t0 8449. init 1 raíz 5r DIR 0,10 0 1 inotificar. init 1 raíz 6r DIR 0,10 0 1 inotificar. init 1 raíz 7u unix 0xc1513880 0t0 8450 socket
Las secciones y sus valores se explican por sí mismos. Sin embargo, revisaremos FD Y TIPO columnas con más precisión.
FD - significa descriptor de archivo y puede ver algunos de los valores como:
También en FD números de columna como 1u es el descriptor de archivo real y seguido de u, r, w de su modo como:
ESCRIBE - de archivos y su identificación.
El siguiente comando mostrará la lista de todos los archivos abiertos del usuario tecmint.
# lsof -u tecmintCOMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. 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
Para conocer todo el proceso en ejecución de un puerto específico, simplemente use el siguiente comando con la opción -I. El siguiente ejemplo enumerará todos los procesos en ejecución del puerto 22.
# lsof -i TCP: 22COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. sshd 1471 root 3u IPv4 12683 0t0 TCP *: ssh (ESCUCHAR) sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (ESCUCHAR)
En el siguiente ejemplo se muestra solo IPv4 y IPv6 Los archivos de red se abren con comandos separados.
# lsof -i 4COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. 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 (ESCUCHAR) avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *: mdns. avahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *: 58600# lsof -i 6COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. 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 (ESCUCHAR) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *: 55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *: 56428 (ESCUCHAR) cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (ESCUCHAR)
Para enumerar todo el proceso en ejecución de archivos abiertos de TCP El puerto varía desde 1-1024.
# lsof -i TCP: 1-1024COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *: sunrpc (ESCUCHAR) cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (ESCUCHAR) sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (ESCUCHAR) maestro 1551 root 13u IPv6 12898 0t0 TCP localhost: smtp (ESCUCHAR) sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLECIDO) sshd 1838 tecmint 3u IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLECIDO) sshd 1871 root 3r IPv4 15842 0t0 TCP 192.168.0.2:ssh->192.168.0.1:groove (ESTABLECIDO) httpd 1918 root 5u IPv6 15991 0t0 TCP *: http (ESCUCHAR) httpd 1918 root 7u IPv6 15995 0t0 TCP *: https (ESCUCHAR)
Aquí, hemos excluido raíz usuario. Puede excluir a un usuario en particular usando ‘^’ con el comando como se muestra arriba.
# lsof -i -u ^ raízCOMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. 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 (ESCUCHAR) 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 (ESCUCHAR) 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 *: jabón-bip. rpc.statd 1277 rpcuser 8u IPv4 11850 0t0 UDP *: 55146. rpc.statd 1277 rpcuser 9u IPv4 11854 0t0 TCP *: 32981 (ESCUCHAR) rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *: 55800. rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *: 56428 (ESCUCHAR)
El siguiente ejemplo muestra al usuario tecmint está usando un comando como silbido y /etc directorio.
# lsof -i -u tecmint COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. bash 1839 tecmint cwd DIR 253,0 12288 15 / etc. ping 2525 tecmint cwd DIR 253,0 12288 15 / etc
El siguiente comando con opción '-I' muestra la lista de todas las conexiones de red "ESCUCHANDO Y ESTABLECIDO ".
# lsof -iCOMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. 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 (ESCUCHAR) 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 (ESCUCHAR) cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost: ipp (ESCUCHAR) cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (ESCUCHAR) sshd 1471 root 3u IPv4 12683 0t0 TCP *: ssh (ESCUCHAR) maestro 1551 root 12u IPv4 12896 0t0 TCP localhost: smtp (ESCUCHAR) maestro 1551 root 13u IPv6 12898 0t0 TCP localhost: smtp (ESCUCHAR) sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLECIDO) httpd 1918 root 5u IPv6 15991 0t0 TCP *: http (ESCUCHAR) httpd 1918 root 7u IPv6 15995 0t0 TCP *: https (ESCUCHAR) aplicación de reloj 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 (ESTABLECIDO) chrome 2377 narad 80u IPv4 25866 0t0 TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net: http (ESTABLECIDO)
El siguiente ejemplo solo muestra de quién PID es 1 [Uno].
# lsof -p 1COMANDO PID USUARIO TIPO FD TAMAÑO DEL DISPOSITIVO / NOMBRE APAGADO NOMBRE. init 1 root cwd DIR 253,0 4096 2 / init 1 raíz rtd DIR 253,0 4096 2 / init 1 root txt REG 253,0 145180 147164 / sbin / init. init 1 root mem REG 253,0 1889704 190149 /lib/libc-2.12.so. init 1 root mem REG 253,0 142472 189970 /lib/ld-2.12.so
A veces, es posible que deba eliminar todos los procesos de un usuario específico. El siguiente comando matará todos los procesos de tecmint usuario.
# kill -9 `lsof -t -u tecmint`
Nota: Aquí, no es posible dar un ejemplo de todas las opciones disponibles, esta guía es solo para mostrar cómo lsof se puede utilizar el comando. Puede consultar la página de manual de lsof comando para saber más sobre él. Compártelo si encuentra que este artículo es útil a través de nuestro cuadro de comentarios a continuación.