lsof (Lista de archivos abiertos, en español) es una conocida herramienta de monitorización de sistemas operativos tipo Unix que se utiliza para mostrar todos los archivos de disco que mantienen abiertos los procesos, incluyendo los sockets de red abiertos, tuberías, entre otros tipos.[1]
Captura de pantalla ayuda lsof
El comando lsof brinda al usuario información detallada acerca del contexto donde se utiliza el archivo. Entre la información se encuentra:
En la invocación del comando lsof, se permite identificar que procesos están utilizando el o los archivos indicados.
Alguno de los parámetros que posee lsof son:
-a
Permite que las opciones (parámetros) sean requisitos para listar. Útil cuando se "filtra" usando -c, -g, -u o -p.
-c CADENA
Lista los archivos de los procesos que comiencen con CADENA
-d FDs
Determina que se deben excluir el o los Descriptores de Archivos (FD) del listado. Los valores se separan por comas.
+d DIRECTORIO
Lista los procesos que utilicen el directorio o bien alguno de los archivos que contenga.
+D DIRECTORIO
idem al anterior pero recursivo:incluye a los subdirectorios y archivos que estos contengan
-i
Lista los sockets abiertos.
-g GID
Lista los archivos lanzados por el GID (ID de Grupo) indicado.
-n
No resuelve los nombres de dominio.
-p PID
Lista los archivos abiertos por el proceso con el PID (ID de Proceso) indicado.
-P
No resuelve los nombres de los puertos (conexiones).
[+|-]r [N [mCADENA]]
Imprime en pantalla el resultado cada N segundos, si no se especifica se ejecuta cada 15. Si se utiliza el prefijo '-' se repite esta operación hasta que el usuario lo cancele (ctrl+C), en cambio si se utiliza el prefijo '+', el proceso termina cuando no haya archivos listados. Adicionalmente entre cada actualización es posible indicarle cual es la cadena de texto que separa cada resultado, a través mCADENA. En caso de no indicarle ninguna cadena, por default se utiliza '======='.
-u [usuario|UID]
Lista los archivos abiertos por el usuario o bien UID (ID de Usuario).