A fer­ra­menta lsof do Linux permite-lhe mo­ni­to­ri­zar o seu sistema e, assim, detetar possíveis problemas mais ra­pi­da­mente. O programa cria uma lista de ficheiros abertos e, com a ajuda de filtros e opções, poderá adaptar as in­for­ma­ções apre­sen­ta­das, na medida do possível, às suas ne­ces­si­da­des.

O que é o Linux lsof?

Se pretende mo­ni­to­ri­zar e analisar o seu sistema Linux, o lsof apresenta-se como uma fer­ra­menta muito fácil de utilizar. O programa, de­sen­vol­vido por Vic Abell e dis­po­ni­bi­li­zado ao público já em 1994, é de código aberto e faz parte da ins­ta­la­ção padrão de várias dis­tri­bui­ções Linux, como o Debian ou o Ubuntu. lsof é a abre­vi­a­tura de «List open files», ou seja, lista de ficheiros abertos. O programa fornece in­for­ma­ções sobre os tipos de ficheiros que estão ou estiveram abertos durante a execução de processos num de­ter­mi­nado momento. Além de ficheiros normais, inclui também di­re­tó­rios, sockets, unidades ou portas, que são apre­sen­ta­dos numa enu­me­ra­ção clara.

Como funciona o lsof?

Se o lsof não estiver dis­po­ní­vel no seu sistema, pode instalá-lo com este comando Linux:

$ apt-get install lsof
bash

Em seguida, podes utilizar a fer­ra­menta para obter uma visão geral dos processos em execução no teu com­pu­ta­dor. Isto é possível porque, nos sistemas Unix, tudo é, em princípio, tratado como um ficheiro. Com o lsof no Linux, podes verificar quais os processos que acedem a quais ficheiros.

Qual é a sintaxe do lsof?

Queres usar o lsof? Esta é a sintaxe básica do comando cor­res­pon­dente:

$ lsof [opción] <formato>
bash

Se quiseres, podes utilizar o lsof sem es­pe­ci­fi­car opções nem filtros. No entanto, se o fizeres, as in­for­ma­ções obtidas poderão ser ex­tre­ma­mente extensas e confusas.

Que opções e filtros oferece o lsof?

O lsof pode ser utilizado com várias opções, a partir das quais é possível obter in­for­ma­ções. Aqui estão as mais im­por­tan­tes:

  • -F: com esta opção, todos os re­sul­ta­dos são apre­sen­ta­dos numa única coluna.
  • -l: com esta opção, é apre­sen­tado o ID do uti­li­za­dor em vez do nome.
  • -n: com esta opção, são apre­sen­ta­dos os endereços IP cor­res­pon­den­tes em vez dos nomes dos an­fi­triões.
  • -P: com esta opção, as portas são apre­sen­ta­das nu­me­ri­ca­mente em vez dos nomes dos serviços.
  • -r [x]: com esta opção, são apre­sen­ta­das in­for­ma­ções atu­a­li­za­das a cada x segundos.
  • -t: com esta opção, é apre­sen­tada apenas uma lista de PID (Iden­ti­fi­ca­dor de Processo).

Além disso, o lsof também pode ser utilizado com várias opções de filtragem. As mais comuns são:

  • -a: em vez de utilizar o operador lógico OR, utiliza-se o operador lógico AND.
  • -c [processo]: fornece in­for­ma­ções sobre qual ficheiro é utilizado por qual processo.
  • +D /diretório/uti­li­za­dor: fornece in­for­ma­ções sobre um diretório es­pe­cí­fico e o seu uti­li­za­dor.
  • /dev/unidade: permite verificar uma unidade es­pe­cí­fica.
  • -i [TCP/UDP ou endereço IP ou porta]: fornece in­for­ma­ções sobre quais processos utilizam quais serviços de rede.
  • +L1: fornece in­for­ma­ções sobre os ficheiros já apagados.
  • +p PID: fornece in­for­ma­ções sobre qual ficheiro cada PID utiliza.
  • /caminho/ficheiro: com esta opção, obtém in­for­ma­ções sobre um ficheiro es­pe­cí­fico.
  • u [uti­li­za­dor]: pode saber quais os ficheiros que cada uti­li­za­dor utiliza.

Para que serve o lsof?

Dá uma vista de olhos a alguns exemplos práticos sobre a uti­li­za­ção do lsof.

$ lsof -u root
bash

Desta forma, serão apre­sen­ta­dos todos os ficheiros que o root tem abertos neste momento.

$ lsof /mount/path
bash

É comum utilizar o lsof para verificar quais os programas que impedem a execução do comando mount. Se houver ficheiros abertos, não é possível executá-lo.

$ lsof -n -i
bash

Desta forma, obterás uma lista das portas abertas.

Ir para o menu principal