lsof - Pequeno guia de referência [Dica]
Publicado por Leandro Nascimento de Souza em 23/03/2010
O comando lsof, como próprio nome diz, lista informações sobre arquivos abertos por processos, o mesmo encontra-se disponível nas plataformas GNU/Linux, Solaris, FreeBSD dentre outros sabores de Unix. Um arquivo aberto pode ser um arquivo regular, um diretório, um arquivo de bloco especial, uma referência de texto em execução, uma biblioteca, um fluxo ou arquivo de rede (sockets de internet ou arquivos nfs). O lsof também oferece informações sobre um arquivo específico ou diretórios no sistema de arquivos.
O comando lsof nos proporciona muitas opções, o mesmo executado sem argumentos exibe a seguinte saída exibindo todos os processos e sockets utilizados por todos os usuários do sistema:
A listagem de arquivos e sockets locais é muito grande, para isso redirecionamos a saída do comando lsof par ao comando head, que exibe as 10 primeiras linhas de um arquivo ou entrada padrão. Durante todo o este estudo será utilizado desta forma. Utilizando a opção -i, são listados todos os arquivos de todos os usuários que estão utilizando conexão com a internet:
Utilizando a opção -g pode-se omitir ou selecionar um grupo de processos, o campo PGID, com a linha de comandos abaixo é possível monitorar o processo de com id de grupo como exemplo será monitorado o processo com id de grupo 2830:
# lsof -g 2830
Também é possível remover um processo da listagem, para tal tarefa deve ser executada a linha de comandos desta maneira:
# lsof -g ^2830
Uma opção interessante é monitorar o estado de uma interface, por exemplo, para verificar conexões ativas na interface de loop-back, podemos executar:
# lsof -i @localhost
Da mesma forma é possível listar as conexões que estão sendo utilizadas pelo protocolo tcp na porta 80:
# lsof -i [email protected]:80
Com a utilização da opção -l, o lsof não converte o id de usuário para o login, esta opção é útil em caso de demora da resolução, da mesma forma ao utilizar a opção -n o nome do serviço não é resolvido, mantendo o número de endereços IP, a opção -P tem o mesmo efeito, porém ao invés de exibir o nome de um serviço, com por exemplo www, listará a porta 80.
O comando lsof apresenta muito mais opções, maiores informações sobre o comando lsof podem ser obtidas através de sua página de manual e através de seu FAQ, abaixo onde podem ser encontradas maiores informações: