Linux lsof: cómo obtener listas de archivos y analizar tu sistema

La herramienta lsof de Linux te permite monitorizar 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 información volcada se adapte en la medida de los posible a tus necesidades.

¿Qué es Linux lsof?

Si quieres monitorizar y analizar tu sistema en Linux, lsof se presenta como una herramienta muy fácil de usar. El programa, desarrollado por Vic Abell y puesto a disposición del público ya en 1994, es de código abierto y forma parte de la instalación estándar de distintas distribuciones Linux como Debian o Ubuntu. lsof es la abreviatura de “List open files”, es decir, lista de archivos abiertos. El programa ofrece información sobre los tipos de archivos que están o estuvieron abiertos en la ejecución de procesos en un momento concreto. Además de archivos normales, también incluye directorios, sockets, unidades o puertos, que se presentan en una enumeración clara.

¿Cómo funciona lsof?

Si lsof no está disponible en tu sistema, puedes instalarlo con este comando Linux:

$ apt-get install lsof
bash

A continuación, puedes usar la herramienta 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 correspondiente:

$ lsof [opción] <formato>
bash

Si lo deseas, puedes usar lsof sin especificar opciones ni filtros. No obstante, si lo haces, puede que la información que obtengas sea extremadamente extensa y confusa.

¿Qué opciones y filtros ofrece lsof?

lsof se puede usar con numerosas opciones a partir de las cuales se obtiene información. Aquí las más importantes:

  • -F: con esta opción todos los resultados 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 direcciones IP correspondientes 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 información actualizada cada x segundos.
  • -t: con esta opción, solo se muestra una lista PID (Identificador 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 información sobre qué archivo es utilizado por qué proceso.
  • +D /directorio/usuario: ofrece información sobre un directorio específico y su usuario.
  • /dev/unidad: permite comprobar una unidad específica.
  • -i [TCP/UDP o dirección IP o puerto]: ofrece información sobre qué procesos utilizan qué servicios de red.
  • +L1: ofrece información sobre los archivos ya borrados.
  • +p PID: ofrece información sobre qué archivo utiliza cada PID.
  • /ruta/archivo: con esta opción recibes informació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 actualmente.

$ 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.

¿Le ha resultado útil este artículo?
Page top