Comandos de Linux

Comando lsof de Linux

Comando lsof de Linux
La herramienta de comando "lsof" en Linux es una de las muchas herramientas integradas que es muy útil para consultar la "lista de archivos abiertos". Sí, el término "lsof" es la abreviatura de la tarea.

Hay una serie de procesos que se ejecutan en el sistema todo el tiempo, accediendo a diferentes archivos del sistema. Estos archivos pueden ser archivos de disco, scripts, sockets de red, dispositivos, canalizaciones con nombre y otros. Con "lsof", es posible realizar muchas cosas, como depurar. También es bastante útil para los administradores del sistema averiguar a qué archivos se accede mediante qué procesos. Uno de los escenarios más útiles que he encontrado es cuando estás a punto de desmontar un sistema de archivos pero aún se accede a él.

Sin más preámbulos, comencemos con "lsof"! Supongo que su sistema UNIX / Linux actual ya tiene "lsof" instalado.

Localización

cual lsof

Esto informa la ruta completa del comando, en este caso, "lsof".

Versión "lsof"
lsof -v

Esto proporcionará información detallada de la versión de "lsof", incluida la fecha de compilación del binario, la versión del compilador, los indicadores del compilador y otros.

Uso básico de "lsof"

Ejecuta "lsof" solo.

lsof

Esto informa una lista GRANDE de todos los archivos a los que está accediendo el sistema en el momento de ejecutar el comando.

Si bien todos los campos se explican por sí mismos, la mayoría de las veces se confunden con las columnas "FD" y "TYPE" y sus valores. Vamos a verlos.

FD: abreviatura de "descriptor de archivo". Viene con los siguientes valores.

También hay otros valores que notará en la columna, como "1u" seguido de u, r, w, etc. valor. Que significan esos?

TIPO: Describe el tipo de archivo y su identificación. Los valores son los siguientes.

Archivos abiertos específicos del usuario

Linux es una brillante plataforma multiusuario. Varios usuarios pueden acceder al sistema al mismo tiempo y realizar operaciones para las que tienen permiso.

Para verificar los archivos a los que está accediendo un determinado usuario, ejecute el siguiente comando.

lsof -u

Sin embargo, para verificar a los usuarios con rango más alto, "lsof" necesitará privilegios de "superusuario".

sudo lsof -u

¿Qué tal si revisa todos los comandos y archivos a los que accede un determinado usuario?? Ejecuta el siguiente.

lsof -i -u

Nuevamente, para los usuarios con un rango más alto, "lsof" necesitará el privilegio de "superusuario".

sudo lsof -i -u

Procesos en ejecución específicos del puerto

Para conocer todos los procesos que actualmente están usando un determinado puerto, llame a "lsof" con la bandera "-i" seguida del protocolo y la información del puerto.

lsof -i<46><@hostname|host_address>
:

Por ejemplo, para ver todos los programas que actualmente acceden al puerto 80 a través del protocolo TCP / IP, ejecute el siguiente comando.

lsof -i TCP: 80

Este método también se puede utilizar para mostrar todos los procesos que utilizan puertos dentro de un rango determinado, por ejemplo, 1 a 1000. La estructura de comando es similar a la anterior con un poco de magia en la parte del número de puerto.

lsof -i TCP: 1-1000

Procesos específicos de protocolo

A continuación, se muestran 2 ejemplos que muestran los procesos que actualmente utilizan los protocolos IPv4 e IPv6.

lsof -i 4

lsof -i 6

Listado de conexiones de red

El siguiente comando informará todas las conexiones de red del sistema actual.

lsof -i

Excluyendo con ^

Sí, podemos excluir usuarios específicos, puertos, FD y otros usando el carácter "^". Todo lo que tiene que hacer es usarlo con precaución para no estropear toda la salida.

En este ejemplo, excluiremos todos los procesos del usuario "root".

lsof -u ^ raíz

Hay otras formas de utilizar este mecanismo de exclusión con "lsof", por ejemplo, con banderas como "-c", "-d", etc. No todas las banderas admiten este mecanismo. Es por eso que recomiendo probar una demostración con este método con cualquier bandera antes de implementarlo en algunos scripts.

Búsqueda de PID

PID es una propiedad importante de cualquier proceso en ejecución en el sistema. Permite una localización más precisa de un determinado proceso. El nombre del proceso no es muy útil en muchas situaciones, ya que el mismo binario puede crear copias de sí mismo y realizar diferentes tareas en paralelo.

Si no sabe cómo obtener el PID de un proceso, simplemente use "ps" para listar todos los procesos en ejecución y filtre la salida usando "grep" con el nombre del proceso y / o comandos.

ps -A

Ahora, realice el filtrado usando "grep".

ps -A | grep

Ahora, compruebe a qué archivos accede el PID.

lsof -p

Listado de archivos abiertos para un dispositivo específico

La funcionalidad de "lsof" no solo se limita a estas funciones. También puede filtrar el resultado de "lsof" por dispositivo. Para este propósito, el comando se verá así.

lsof

Este comando es muy útil para descubrir todos los procesos en ejecución con la información de su propietario accediendo a un sistema de archivos en particular. Si tiene problemas para desmontar un sistema de archivos, esta es la mejor manera de hacerlo.

lsof

Lista de archivos abiertos en un directorio

Al igual que en el ejemplo anterior, simplemente pase la ruta del directorio a "lsof" para averiguar si algún proceso está accediendo a él.

Nota: "lsof" comprobará el directorio de forma recursiva, por lo que puede llevar tiempo.

= lsof + D

Bono: terminar toda la actividad del usuario

Sea extremadamente cauteloso con esta parte, ya que simplemente puede estropear todo lo que hace un usuario. El siguiente comando matará todos los procesos en ejecución de un usuario.

sudo kill -9 'lsof -t -u Pensamientos finales

Las características de "lsof" no se detienen aquí. Los aquí mencionados son los que más necesitaremos en el día a día. Hay muchas otras funcionalidades de "lsof" que pueden ser útiles (en casos específicos, por supuesto).

Para conocer todas las funciones disponibles y su uso, consulte las páginas de información y manual de "lsof".

hombre lsof

info lsof

lsof -?

Disfrutar!

Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...
OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...
Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....