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.