Guia de sobrevivência do lsof [fechado]

104

lsof é um utilitário de linha de comando incrivelmente poderoso para sistemas Unix. Ele lista os arquivos abertos, exibindo informações sobre eles. E uma vez que quase tudo é um arquivo em sistemas unix, lsof pode fornecer aos administradores de sistemas uma tonelada de dados de diagnóstico úteis.

Quais são algumas das maneiras mais comuns e úteis de usar lsof e quais opções de linha de comando são usadas para isso?

Hans Sjunnesson
fonte

Respostas:

119

Para mostrar todas as redes relacionadas a um determinado port:

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

Para mostrar conexões a um host específico, use @host

lsof [email protected]

Mostre as conexões com base no host e na porta usando @host:port lsof [email protected]: 22

grepping para LISTENmostra em quais portas seu sistema está aguardando conexões:

lsof -i| grep LISTEN

Mostre o que um determinado usuário abriu usando -u:

lsof -u daniel

Veja com quais arquivos e conexões de rede um comando está usando -c

lsof -c syslog-ng

A -popção permite que você veja o que um determinado ID de processo está aberto, o que é bom para aprender mais sobre processos desconhecidos:

lsof -p 10075

A -topção retorna apenas umPID

lsof -t -c Mail

Usando as opções -te -cjuntas, você pode HUPprocessar

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

Você também pode usar o -tcom -upara matar tudo que um usuário abriu

kill -9 $(lsof -t -u daniel)
Kevin
fonte
Fonte: danielmiessler.com/study/lsof
Uphill_ What '1
Uma boa maneira é usar o cheat gem, se você usar Ruby. É apenas uma CLI conveniente e voltada para a comunidade para cheat-sheet de muitos utilitários (independente do idioma). Dê-lhe uma tentativa .
Kedar Mhaswade,
25
lsof -i :port 

informará quais programas estão escutando em uma porta específica.

dvorak
fonte
1
Não está limitado a "escutar", então se você especificar lsof -i :8080e tiver vários processos conectando-se a um proxy na porta 8080, você também os obterá.
Matt Byrne
14
lsof +D /some/directory

Exibirá recursivamente todos os arquivos abertos em um diretório. + d apenas para o nível superior.

Isso é útil quando você tem alta espera% para IO, correlacionada para usar em um FS específico e deseja ver quais processos estão mastigando seu io.

siesta
fonte
13

lsof -iirá fornecer uma lista de sockets de rede abertos. A -nopção impedirá pesquisas de DNS, o que é útil quando sua conexão de rede é lenta ou não confiável.

John Millikin
fonte
5
lsof -iserá única mostrar soquetes que você tem acesso a no espaço de nomes (e que são consideradas como tomadas de "Internet" através da introspecção, não apenas qualquer tipo de soquete de rede). Caso contrário, as alças do tipo 'sock' não aparecerão na lista.
Nick Bastin
13

Veja quais arquivos um aplicativo ou daemon em execução abriu:

lsof -p pid

Onde pid é o ID do processo do aplicativo ou daemon.

Chris
fonte
10
lsof +f -- /mountpoint

lista os processos usando arquivos na montagem montada em / mountpoint. Particularmente útil para descobrir quais processos estão usando um stick USB ou CD / DVD montado.

mas
fonte