2008-09-19 13 views
85

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

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

Respuesta

10

lsof -i proporcionará una lista de enchufes de red abiertos. La opción -n evitará las búsquedas de DNS, lo cual es útil cuando la conexión de red es lenta o poco confiable.

+3

'lsof -i' * solo * le mostrará los sockets a los que tiene acceso en su espacio de nombres (y que se consideran sockets de" Internet "mediante introspección, no solo cualquier tipo de socket de red). De lo contrario, los identificadores de tipo 'calcetín' no aparecerán en la lista. –

10

ver los ficheros de una aplicación en ejecución o demonio tiene abierta:

lsof -p pid 

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

17
lsof -i :port 

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

+1

No se limita a "escuchar", por lo que si especifica 'lsof -i: 8080' y tiene una serie de procesos que se conectan a un proxy en el puerto 8080, también los obtendrá. –

98

para mostrar todos los establecimiento de una red relacionada con un determinado port:

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

Para mostrar las conexiones a un host específico, utilice @host

lsof [email protected] 

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

grep de ping para LISTEN muestra qué puertos el sistema está a la espera para las conexiones en:

lsof -i| grep LISTEN 

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

lsof -u daniel 

Ver qué archivos y conexiones de red que usa un comando con -c

lsof -c syslog-ng 

El interruptor -p le permite ver lo que un identificador de proceso dada tiene abierto, lo que es bueno para aprender más acerca de los procesos desconocidos:

lsof -p 10075 

Los -t devuelve opción sólo un PID

lsof -t -c Mail 

Uso del -t y -c opciones juntas usted puede HUP procesos

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

También puede utilizar el -t-u con matar a todo lo que un usuario tiene abierto

kill -9 $(lsof -t -u daniel) 
+0

Fuente: http://danielmiessler.com/study/lsof/ –

+0

Una buena forma es usar la gema trampa, si usas Ruby. Es simplemente conveniente, CLI impulsado por la comunidad para copiar hojas de muchas utilidades (independiente del lenguaje). Dale un [try] (http://cheat.errtheblog.com/). –

7
lsof +f -- /mountpoint 

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

10
lsof +D /some/directory 

Visualizará recursivamente 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 con el uso en un FS particular y quiere ver qué procesos están masticando su io.