La he­rra­mie­n­ta lsof de Linux te permite mo­ni­to­ri­zar tu sistema y, así, poder detectar posibles problemas con mayor rapidez. El programa crea una lista de archivos abiertos y, con ayuda de filtros y opciones, podrás hacer que la in­fo­r­ma­ción volcada se adapte en la medida de los posible a tus ne­ce­si­da­des.

¿Qué es Linux lsof?

Si quieres mo­ni­to­ri­zar y analizar tu sistema en Linux, lsof se presenta como una he­rra­mie­n­ta muy fácil de usar. El programa, de­sa­rro­lla­do por Vic Abell y puesto a di­s­po­si­ción del público ya en 1994, es de código abierto y forma parte de la in­s­ta­la­ción estándar de distintas di­s­tri­bu­cio­nes Linux como Debian o Ubuntu. lsof es la abre­via­tu­ra de “List open files”, es decir, lista de archivos abiertos. El programa ofrece in­fo­r­ma­ción sobre los tipos de archivos que están o es­tu­vie­ron abiertos en la ejecución de procesos en un momento concreto. Además de archivos normales, también incluye di­re­c­to­rios, sockets, unidades o puertos, que se presentan en una enu­me­ra­ción clara.

¿Cómo funciona lsof?

Si lsof no está di­s­po­ni­ble en tu sistema, puedes in­s­ta­lar­lo con este comando Linux:

$ apt-get install lsof
bash

A co­n­ti­nua­ción, puedes usar la he­rra­mie­n­ta para para obtener una visión general de los procesos de trabajo en tu ordenador. Esto es posible, pues en los sistemas Unix en principio todo se ve como un archivo. Con lsof en Linux puedes comprobar en qué procesos se accede a qué archivos.

¿Cuál es la sintaxis de lsof?

¿Quieres usar lsof? Esta es la sintaxis básica del comando co­rre­s­po­n­die­n­te:

$ lsof [opción] <formato>
bash

Si lo deseas, puedes usar lsof sin es­pe­ci­fi­car opciones ni filtros. No obstante, si lo haces, puede que la in­fo­r­ma­ción que obtengas sea ex­tre­ma­da­me­n­te extensa y confusa.

¿Qué opciones y filtros ofrece lsof?

lsof se puede usar con numerosas opciones a partir de las cuales se obtiene in­fo­r­ma­ción. Aquí las más im­po­r­ta­n­tes:

  • -F: con esta opción todos los re­su­l­ta­dos se muestran en una sola columna.
  • -l: con esta opción se muestra el ID de usuario en lugar del nombre.
  • -n: con esta opción, se muestran las di­re­c­cio­nes IP co­rre­s­po­n­die­n­tes en lugar de los nombres de host.
  • -P: con esta opción, se muestran los puertos de forma numérica en lugar de los nombres de servicio.
  • -r [x]: con esta opción se vuelve a ofrecer in­fo­r­ma­ción ac­tua­li­za­da cada x segundos.
  • -t: con esta opción, solo se muestra una lista PID (Ide­n­ti­fi­ca­dor de Proceso).

Además, lsof se puede usar también con numerosas opciones de filtrado. Las más comunes son:

  • -a: en lugar de usar el operador lógico OR se usa el operador lógico AND.
  • -c [proceso]: ofrece in­fo­r­ma­ción sobre qué archivo es utilizado por qué proceso.
  • +D /di­re­c­to­rio/usuario: ofrece in­fo­r­ma­ción sobre un di­re­c­to­rio es­pe­cí­fi­co y su usuario.
  • /dev/unidad: permite comprobar una unidad es­pe­cí­fi­ca.
  • -i [TCP/UDP o dirección IP o puerto]: ofrece in­fo­r­ma­ción sobre qué procesos utilizan qué servicios de red.
  • +L1: ofrece in­fo­r­ma­ción sobre los archivos ya borrados.
  • +p PID: ofrece in­fo­r­ma­ción sobre qué archivo utiliza cada PID.
  • /ruta/archivo: con esta opción recibes in­fo­r­ma­ción sobre un archivo concreto.
  • u [usuario]: puedes saber qué archivos usa qué usuario.

¿Para qué se usa lsof?

Echa un vistazo a algunos ejemplos prácticos sobre el uso de lsof.

$ lsof -u root
bash

De esta forma se te mostrarán todos los ficheros que root mantiene abiertos ac­tua­l­me­n­te.

$ lsof /mount/path
bash

Es común usar lsof para comprobar los programas que impiden la ejecución del comando mount. Si hay archivos abiertos, no se puede ejecutar.

$ lsof -n -i
bash

De esta forma, obtendrás un listado de los puertos abiertos.

Ir al menú principal