lsof es una herramienta que nos permite buscar ficheros abiertos en el sistema. La característica que la hace especialmente poderosa es que en Linux, todo se trata como un fichero: tuberías, directorios, dispositivos, inodos, sockets y así de forma sucesiva.
lsof (sin modificadores) nos listara todos los ficheros abiertos por cualquiera de los procesos que se encuentran corriendo actualmente. Para poder realizar un filtro de esta lista port usuario, tendremos que usar lsof -u <nombreusuario>. Aquí tenemos un ejemplo de salida del comando:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 2354 juliet mem REG 254,0 14880 105723 /lib/libcap.so.1.10 sshd 2354 juliet DEL REG 0,8 127123574 /dev/zero bash 2363 juliet cwd DIR 254,4 20480 7274497 /home/juliet bash 2363 juliet txt REG 254,0 769368 4126 /bin/bash bash 2363 juliet mem REG 254,0 97928 105698 /lib/ld-2.3.6.so
La columna FD muestra la informacion sobre el descriptor del fichero, o identifica otros tipos de ficheros. En este caso, cwd indica el directorio de trabajo actual, y txt indica un programa de texto. La columna TTYPE contiene informacion sobre el tipo de fichero (REG indica un fichero regular). La columna NODE puede ser muy util si estas intentando recuperar un fichero borrado. Echa un vistazo al comando man para obtener una explicacion detallada de la salida.
lsof <nombrefichero> muestra que procesos tienen ficheros con ese nombre abiertos. lsof +D /<directorio> mostrará que procesos tienen ficheros abiertos en ese directorio. Esto es muy interesante, pues podemos usar esta información si estamos tratando de desmontar un sistema de ficheros pero el sistema esta devolviendo el error «sistema de ficheros en uso» para encontrar procesos que estan usando esos ficheros en ese sistema de ficheros y poder matarlos como sea necesario.
lsof -c <nombreproceso> mostrará todos los procesos cuyos nombres comienzan con <nombreproceso> y que tienen ficheros abiertos; lsof +p PID hace lo mismo que en el caso anterior pero usando un process ID. Con lsof -i obtendremos informacion sobre los sockets IP. Echa un vistazo a la página del man para consultar los destalles concretos del comando y el resto de opciones disponibles.
You must be logged in to post a comment.