Comando lsof de Linux explicado con 12 ejemplos prácticos

El lsof es un acrónimo de Lista de archivos abiertos que muestra información detallada sobre qué archivos se mantienen abiertos en un sistema Linux y qué procesos los han abierto. Fue desarrollado y respaldado por Victor A. Abell.

Este artículo lo ayudará a comprender el uso del comando lsof junto con 12 ejemplos prácticos.

Lista de todos los archivos abiertos usando lsof

Para ver la lista de archivos abiertos, simplemente ejecute lsof y obtendrá el resultado como se muestra a continuación, donde puede ver un encabezado como un comando, Pid, ​​Usuario, FD, etc.

                      $ lsof
                    

en lo anterior example, la mayoría de las columnas y sus valores se explican por sí mismos. Entonces, veamos qué es realmente FD, Fd se refiere al descriptor de archivo y contiene valores como:

  • cwd- directorio de trabajo actual
  • rtd – directorio raíz
  • texto – texto
  • mem – archivo mapeado en memoria

Lista de archivos abiertos para un usuario específico

Puede especificar el usuario usando la opción -u del comando que le permite enumerar todos los archivos abiertos para ese usuario.

                      $ lsof -u root
                    

Listar archivo abierto por ID de proceso

Supongamos que conoce el pid del proceso específico, puede buscar en la lista de archivos abiertos según el pid usando la opción -p junto con el comando que sigue con el valor pid. Debe ejecutar el comando como se especifica en el example dada a continuación.

                      # lsof -p 82
                    

Proceso de ejecución de puerto específico

Para verificar qué proceso ocupó el puerto específico, puede enumerarlos usando la opción -i junto con el número de puerto en TCP/UDP. En el siguiente examplebusquemos qué proceso ha tomado el puerto 80.

                      # lsof -i:80
                    

Mostrar la lista de archivos de red específicos (IPv4 e IPv6)

Para mostrar los archivos abiertos según el tipo de archivos de red, debe especificar el tipo después de la opción -i.

Para IPv4, debe ejecutar el comando como se muestra a continuación.

                      # lsof -i 4
                    

Para IPv6, ejecute el comando,

                      # lsof -i 6
                    

Encuentre procesos que escuchen un rango de puertos específico

Si desea mostrar la lista de archivos abiertos del rango de puertos específico. Debe usar -i al final del comando con un rango de puerto específico.

                      # losf -i TCP:1-100
                    

Excluir el usuario específico de la lista de archivos abiertos

Puede excluir a los usuarios de la salida usando el carácter ‘^’ en el comando como se indica a continuación example.

                      # lsof -i -u^sanju
                    

Listar procesos por ruta de directorio

Para encontrar un proceso que se ejecuta en un directorio específico, puede ejecutar un comando con la opción +D siguiendo la ruta junto con él. Tienes que ejecutar el comando de la siguiente manera.

                      # lsof +D /home/sanju
                    

Conexiones de red de visualización

Opción User -i al comando para ver la lista de conexiones de red basadas en Escuchando y Establecidas.

                      $ lsof -i
                    

Matar proceso específico

A veces, algunos procesos pueden resistir el cierre incluso si close el proceso o algún proceso desconocido puede ocupar el puerto donde desea ejecutar un programa específico. Para forzar el cierre del proceso, puede usar el comando lsof ya que es más fácil enumerar el proceso en ejecución. Por lo tanto, debe ejecutar el comando de la siguiente manera.

                      # kill -9 $(lsof -t -i:8080)
                    

Lista de archivos abiertos basados ​​en FD (descriptor de archivo)

Puede filtrar los archivos abiertos según los tipos de FD, debe usar la opción -d junto con el tipo de FD como se menciona en el example abajo.

                      # lsof -d rtd
                    

Lista de archivos abiertos según el nombre del proceso

Puede listar los archivos según el nombre del proceso usando la opción -c con el comando. Ejecute el comando de las siguientes maneras

                      # lsof -c nginx
                    

Conclusión

Le agradezco que haya dedicado su tiempo para leer este artículo. Espero que haya adquirido algún conocimiento sobre cómo se puede usar el comando lsof. Estas son las cosas que encuentro útiles durante la implementación de la aplicación.

Comando lsof de Linux explicado con 12 ejemplos prácticos

Related Posts