Comandos Linux

Comando lsof do Linux

Comando lsof do Linux
A ferramenta de comando “lsof” no Linux é uma das muitas ferramentas integradas que são muito úteis para verificar a “lista de arquivos abertos”. Sim, o termo “lsof” é a abreviatura da tarefa.

Existem vários processos em execução no sistema o tempo todo, acessando diferentes arquivos do sistema. Esses arquivos podem ser arquivos de disco, scripts, soquetes de rede, dispositivos, canais nomeados e outros. Usando “lsof”, é possível realizar muitas coisas, como depurar. Também é muito útil para administradores de sistema descobrirem quais arquivos estão sendo acessados ​​por quais processos. Um dos cenários mais úteis que encontrei é quando você está prestes a desmontar um sistema de arquivos, mas ele ainda está sendo acessado.

Sem mais delongas, vamos começar com “lsof”! Estou assumindo que seu sistema UNIX / Linux atual já tem o “lsof” instalado.

Localização

do qual eu

Isso relata o caminho completo do comando, neste caso, “lsof”.

Versão “lsof”
lsof -v

Isso relatará informações detalhadas da versão de “lsof”, incluindo a data de construção do binário, versão do compilador, sinalizadores do compilador e outros.

Uso básico de “lsof”

Execute “lsof” sozinho.

lsof

Isso relata uma GRANDE lista de todos os arquivos que estão sendo acessados ​​pelo sistema no momento da execução do comando.

Embora todos os campos sejam autoexplicativos, geralmente fica confuso sobre as colunas "FD" e "TYPE" e seus valores. Vamos dar uma olhada.

FD: Abreviatura de “Descritor de Arquivo”. Ele vem com os seguintes valores.

Existem também outros valores que você notará na coluna, como “1u” seguido por u, r, w, etc. valor. O que isso significa?

TIPO: descreve o tipo de arquivo e sua identificação. Os valores são os seguintes.

Arquivos abertos específicos do usuário

Linux é uma plataforma multiusuário brilhante. Vários usuários podem acessar o sistema ao mesmo tempo e realizar operações para as quais eles têm permissão.

Para verificar os arquivos que estão sendo acessados ​​por um determinado usuário, execute o seguinte comando.

lsof -u

No entanto, para verificar os usuários com classificação mais alta, "lsof" precisará do privilégio de "superusuário".

sudo lsof -u

Que tal verificar todos os comandos e arquivos que um determinado usuário está acessando? Execute o seguinte.

lsof -i -u

Novamente, para usuários com classificação mais alta, “lsof” precisará do privilégio de “superusuário”.

sudo lsof -i -u

Processos em execução específicos de porta

Para descobrir todos os processos que estão usando atualmente uma determinada porta, chame “lsof” com o sinalizador “-i” seguido pelas informações do protocolo e da porta.

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

Por exemplo, para verificar todos os programas que acessam atualmente a porta 80 sobre o protocolo TCP / IP, execute o seguinte comando.

lsof -i TCP: 80

Este método também pode ser usado para mostrar todos os processos que estão usando portas dentro de um determinado intervalo, por exemplo, 1 a 1000. A estrutura do comando é semelhante a antes com um pouco de magia na parte do número da porta.

lsof -i TCP: 1-1000

Processos específicos de protocolo

Aqui estão 2 exemplos que mostram os processos que estão usando os protocolos IPv4 e IPv6.

lsof -i 4

lsof -i 6

Listagem de conexões de rede

O seguinte comando irá relatar todas as conexões de rede do sistema atual.

lsof -i

Excluindo com ^

Sim, podemos excluir um usuário específico, porta, FD e outros usando o caractere “^”. Tudo o que você precisa fazer é usá-lo com cuidado para não bagunçar toda a saída.

Neste exemplo, vamos excluir todos os processos do usuário “root”.

lsof -u ^ root

Existem outras maneiras de usar este mecanismo de exclusão com “lsof”, por exemplo, com sinalizadores como “-c”, “-d” etc. Nem todos os sinalizadores suportam este mecanismo. É por isso que recomendo experimentar uma demonstração com este método com qualquer sinalizador antes de implementá-lo em alguns scripts.

Pesquisa PID

PID é uma propriedade importante de qualquer processo em execução no sistema. Permite uma identificação mais precisa de um determinado processo. O nome do processo não é muito útil em muitas situações, pois o mesmo binário pode criar cópias de si mesmo e realizar tarefas diferentes em paralelo.

Se você não sabe como obter o PID de um processo, basta usar “ps” para listar todos os processos em execução e filtrar a saída usando “grep” com o nome do processo e / ou comandos.

ps -A

Agora, execute a filtragem usando “grep”.

ps -A | grep

Agora, verifique quais arquivos o PID está acessando.

lsof -p

Listando arquivos abertos para um dispositivo específico

A funcionalidade do “lsof” não se limita apenas a essas funções. Você também pode filtrar o resultado de “lsof” por dispositivo também. Para este propósito, o comando será parecido com este.

lsof

Este comando é superútil para descobrir todos os processos em execução com suas informações de dono acessando um determinado sistema de arquivos. Se você está tendo problemas para desmontar um sistema de arquivos, esta é a melhor maneira de.

lsof

Lista os arquivos abertos em um diretório

Semelhante ao exemplo anterior, basta passar o caminho do diretório para “lsof” para descobrir se algum processo está acessando-o.

Nota: “lsof” irá verificar o diretório recursivamente, por isso pode levar algum tempo.

= lsof + D

Bônus: encerrar todas as atividades do usuário

Seja extremamente cauteloso com esta parte, pois ela pode simplesmente bagunçar tudo o que o usuário está fazendo. O seguinte comando irá matar todos os processos em execução de um usuário.

sudo kill -9 'lsof -t -u Pensamentos finais

Os recursos do “lsof” não param por aqui. Os mencionados aqui são os que mais precisaremos no dia a dia. Existem muitas outras funcionalidades do “lsof” que podem ser úteis (em casos específicos, é claro).

Para todos os recursos disponíveis e seu uso, verifique as páginas man e info de “lsof”.

homem lsof

info lsof

lsof -?

Apreciar!

Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...
Como instalar o League Of Legends no Ubuntu 14.04
Se você é fã de League of Legends, esta é uma oportunidade para testar o funcionamento de League of Legends. Observe que LOL é suportado no PlayOnLinu...
Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...