Linux e Unix
Comando lsof - listar arquivos e processos abertos
lsof significa "listar arquivos abertos", e é um comando usado para retornar uma listagem de todos os arquivos abertos e dos processos que os abriram.
Um arquivo aberto pode ser um arquivo de disco, diretório, biblioteca, pipes, dispositivos e sockets de rede que tenham sido abertos por um processo qualquer.
Por exemplo, podemos usar esse comando quando tentamos desmontar um disco e não conseguimos, pois algum arquivo, que desconhecemos, está em uso ainda. Como resolver o problema? Podemos listar os arquivos abertos e identificar os processos que os estão usando, e então, finalizá-los.
Essa ferramenta está disponível nos sistemas Linux, FreeBSD, Solaris e Mac OS X, entre outros.
Sintaxe:
lsof [opções]
Opções comuns:
lsof <enter>
Lista todos os arquivos abertos por todos os processos.
+D diretório
Procura todas as instâncias abertas do diretório listado e todos os arquivos e diretórios que ele contém
-i
Mostra uma lista de sockets de rede abertos
-i :n
Mostra as conexões abertas na porta n
-i [tcp|udp]
Mostra as conexões ativas usando TCP ou UDP
-u usuário
Mostra o que o usuário tem aberto
-p PID
Mostra os arquivos abertos pelo processo com PID especificado
-t
Retorna apenas os identificadores do processos (somente PIDs)
-c comando
Mostra quais arquivos e conexões de rede um comando está usando
Informações comumente retornadas pelo lsof são:
COMMAND - Comando em execução
PID - Identificador do processo
USER - Usuário proprietário do processo
FD - File Descriptor (Descritor de Arquivos). Os mais comuns são:
cwd – Diretório atual
txt – Arquivo de texto
mem – Arquivo mapeado na memória
mmap – dispositivo mapeado na memória
NUMBER – É o próprio descritor de arquivos. O caractere que vem logo após o número representa o modo no qual o arquivo está aberto, odendo ser: r para leitura, w para gravação e u para leitura e gravação.
TYPE - Tipo do arquivo. Os tipos mais comuns são:
DEVICE - Números do dispositivo, separados por vírgula
SIZE, SIZE/OFF, OFFSET - Tamanho do arquivo ou offset do arquivo em bytes
NODE - Número de inode no sistema de arquivos ou tipo de protocolo IP
NAME - Nome do ponto de montagem e sistema de arquivos no qual o arquivo reside, ou o nome de um disopsitivo especial de blocos ou caracteres, ou ainda os endereços IP de um arquivo de rede; há outras opções mais avançadas.
Consulte página de manual lsof(8) para ver mais detalhes.
Exemplos:
1. Mostrar os processos ativos no diretório /acesso. Usamos o comando lsof sem opções, e filtramos o resultado com grep:
# lsof | grep /acesso
Veja que temos um arquivo chamado planilhas aberto com o programa vi. O PID do processo é 2312, trata-se de um arquivo regular (REG) e o arquivo está aberto para eitura e gravação (3u).
2. Listar todas as conexões ativas que usem o protocolo UDP:
# lsof -i UDP
3. Mostrar as conexões abertas na porta 931:
# lsof -i:931
4. Mostrar o que o usuário fabio possui aberto:
# lsof -u fabio
5. Mostrar quais arquivos e conexões de rede o comando ping usa após ser disparado por um usuário:
# lsof -c ping
6. Procura todas as instâncias abertas do diretório /root:
# lsof +D /root
7. Obter o tráfego IPv6 na máquina:
# lsof -i 6
8. Descobrir portas que estão aguardando conexões (LISTEN):
# lsof -i -s TCP:LISTEN
Funciona usando um grep também, como em lsof -i | grep LISTEN
9. Mostrar os arquivos abertos por todos os usuários EXCETO o usuário fabio. para isso usaremos o caractere ^ (expressão regular):
# lsof -u ^fabio
10. Matar todos os processos pertencentes ao usuário fabio de uma só vez:
# kill -9 $(lsof -t -u fabio)
Esse comando executa lsof com as opções -u (usuário) e -t (retorna apenas PIDs), e passa o resultado para o comando kill -9.
Há várias outras opções disponíveis para o comando lsof. Pesquise nas páginas de manual se quiser saber mais a respeito.
loading...
-
Permissões De Acesso A Arquivos E Pastas Pelo Terminal No Linux
Permissões de acesso a arquivos e pastas no LinuxUsamos permissões no Linux para definir quem pode acessar arquivos e diretórios, e seu nível de acesso, que vai desde acesso total até permissão totalmente negada. Para estudarmos como funcionam as...
-
Comando Wait - Esperando A Finalização De Um Job No Linux
Comando wait Podemos usar o comando wait para esperar a finalização de uma tarefa (job). Este comando recebe como argumentos um ou mais IDs de processos. É útil por exemplo quando estamos escrevendo scripts do shell e queremos que o script espere...
-
Firewall Iptables- Parte 03 - Linux
Alguns exemplos de regras do iptables1. Vamos começar configurando as regras-padrão da tabela FILTER. Vamos descartar todos os pacotes que chegam ao servidor por meio da cadeia INPUT e liberar todos os pacotes originados no servidor por meio da cadeia...
-
Verificando Processos Com Os Comandos Ps E Pstree No Linux
O comando ps gera um instantâneo dos processos atuais no terminal e permite mostrar informações sobre uma seleção dos processos ativos. Sintaxe:ps [opções]Há três estilos de opções disponíveis: 1. Opções padrão do Unix: podem ser agrupadas...
-
Permissões De Acesso A Arquivos E Diretórios E Comando Chmod
O Linux / Unix possui um sistema de permissões de acesso a arquivos e diretórios relativamente complexo.Neste sistema, existem três tipos de permissões básicas: leitura, escrita (gravação) e execução, representados respectivamente pelos caracteres...
Linux e Unix