lsof guía de supervivencia [cerrado]

104

lsof es una utilidad de línea de comandos increíblemente poderosa para sistemas Unix. Enumera los archivos abiertos, mostrando información sobre ellos. Y dado que casi todo es un archivo en los sistemas Unix, lsof puede brindar a los administradores de sistemas una tonelada de datos de diagnóstico útiles.

¿Cuáles son algunas de las formas más comunes y útiles de usar lsof y qué modificadores de línea de comandos se utilizan para eso?

Hans Sjunnesson
fuente

Respuestas:

119

Para mostrar todas las redes relacionadas con un determinado port:

lsof -iTCP -i :port
lsof -i :22

Para mostrar conexiones a un host específico, use @host

lsof [email protected]

Muestre las conexiones basadas en el host y el puerto usando @host:port lsof [email protected]: 22

grepping para LISTENmuestra los puertos en los que su sistema está esperando conexiones:

lsof -i| grep LISTEN

Muestre lo que un usuario determinado tiene abierto usando -u:

lsof -u daniel

Vea qué archivos y conexiones de red está usando un comando con -c

lsof -c syslog-ng

El -pconmutador le permite ver qué tiene abierto un ID de proceso determinado, lo cual es bueno para aprender más sobre procesos desconocidos:

lsof -p 10075

La -topción devuelve solo unPID

lsof -t -c Mail

Usando las opciones -ty -cjuntas puede HUPprocesar

kill -HUP $(lsof -t -c sshd)

También puede usar -twith -upara eliminar todo lo que un usuario tiene abierto

kill -9 $(lsof -t -u daniel)
Kevin
fuente
Fuente: danielmiessler.com/study/lsof
Uphill_ What '1 de
Una buena forma es usar la gema trampa, si usa Ruby. Es simplemente una CLI conveniente, impulsada por la comunidad, para hacer trampas de muchas utilidades (independiente del idioma). Darle una oportunidad .
Kedar Mhaswade
25
lsof -i :port 

le dirá qué programas están escuchando en un puerto específico.

dvorak
fuente
1
No se limita a "escuchar", así que si especificas lsof -i :8080y tienes un montón de procesos que se conectan a un proxy en el puerto 8080, también los obtendrás.
Matt Byrne
14
lsof +D /some/directory

Mostrará de forma recursiva todos los archivos abiertos en un directorio. + d solo para el nivel superior.

Esto es útil cuando tiene un alto% de espera para IO, correlacionado para usar en un FS en particular y desea ver qué procesos están consumiendo su io.

siesta
fuente
13

lsof -iproporcionará una lista de sockets de red abiertos. La -nopción evitará búsquedas de DNS, lo cual es útil cuando su conexión de red es lenta o poco confiable.

John Millikin
fuente
5
lsof -iserá solamente mostrar que los zócalos de que tiene acceso en su espacio de nombres (y que son considerados como los zócalos "Internet" a través de la introspección, no cualquier tipo de socket de red). De lo contrario, los identificadores de tipo 'calcetín' no aparecerán en la lista.
Nick Bastin
13

Vea qué archivos tiene abiertos una aplicación o un demonio en ejecución:

lsof -p pid

Donde pid es el ID de proceso de la aplicación o demonio.

Chris
fuente
10
lsof +f -- /mountpoint

enumera los procesos que utilizan archivos en el montaje montado en / mountpoint. Particularmente útil para encontrar qué proceso (s) están usando una memoria USB o CD / DVD montados.

mas
fuente