lsof: El Ojo Mágico sobre los Archivos Abiertos en Linux

El sistema operativo Linux, como el corazón que da vida a muchas computadoras y servidores alrededor del mundo, se halla en constante actividad. Esta actividad se manifiesta, en gran medida, a través de los archivos que se abren, leen, escriben y cierran constantemente. Aquí es donde el comando lsof (List Open Files) entra en juego. Esta herramienta es como una linterna que nos permite explorar todos estos archivos abiertos. En este artículo, nos sumergiremos en el universo de lsof, aprendiendo a utilizarlo en sistemas Ubuntu y Debian para descubrir qué está ocurriendo en las entrañas de nuestro sistema.

Conociendo lsof: ¿Qué es y para qué sirve?

lsof es más que un simple comando: es la puerta a un mundo de información sobre los archivos que nuestro sistema tiene en uso.

Naturaleza de un «archivo» en Linux

Para Linux, un «archivo» no es solo un documento o una imagen. Un archivo puede ser un socket, un pipe, un dispositivo, entre otros. Al hablar de «archivos abiertos», lsof nos proporciona información sobre todos estos tipos.

Utilidad de lsof

lsof es esencial para:

  • Identificar qué archivos tiene abiertos un proceso específico.
  • Descubrir qué procesos están usando un archivo, dispositivo o socket.
  • Ayudar en la solución de problemas, como descubrir qué proceso está ocupando un puerto específico.

Cómo usar lsof: Algunos ejemplos prácticos

A continuación, presentamos algunas maneras comunes de utilizar lsof.

Listar todos los archivos abiertos

Simplemente ejecutando lsof, obtendremos una lista de todos los archivos abiertos en el sistema.

$ lsof

Filtrar archivos abiertos por proceso

Si queremos saber qué archivos tiene abiertos un proceso específico, podemos hacerlo de la siguiente manera:

$ lsof -p [PID]

Reemplazando [PID] por el ID del proceso de interés.

Identificar quién está usando un puerto específico

Para saber qué proceso está ocupando un puerto, usamos:

$ lsof -i :[PUERTO]

Reemplazando [PUERTO] por el número de puerto que queremos investigar.

Profundizando en lsof: Opciones avanzadas

El poder de lsof va más allá de las operaciones básicas. Veamos algunas opciones avanzadas.

Listar todos los archivos abiertos por un usuario

Para lograrlo, simplemente usamos:

$ lsof -u [NOMBRE_USUARIO]

Combinar múltiples criterios

lsof permite combinar criterios usando operadores. Por ejemplo, para listar todos los archivos que no pertenecen al usuario «juan» y están relacionados con el proceso de ID 1234, usamos:

$ lsof -u ^juan -p 1234

Estos son solo algunos ejemplos de lo que lsof puede hacer. Experimentando y consultando el manual (man lsof), descubriremos aún más potencial.