Linux lsof: como obter listas de ficheiros e analisar o seu sistema
A ferramenta lsof do Linux permite-lhe monitorizar o seu sistema e, assim, detetar possíveis problemas mais rapidamente. O programa cria uma lista de ficheiros abertos e, com a ajuda de filtros e opções, poderá adaptar as informações apresentadas, na medida do possível, às suas necessidades.
O que é o Linux lsof?
Se pretende monitorizar e analisar o seu sistema Linux, o lsof apresenta-se como uma ferramenta muito fácil de utilizar. O programa, desenvolvido por Vic Abell e disponibilizado ao público já em 1994, é de código aberto e faz parte da instalação padrão de várias distribuições Linux, como o Debian ou o Ubuntu. lsof é a abreviatura de «List open files», ou seja, lista de ficheiros abertos. O programa fornece informações sobre os tipos de ficheiros que estão ou estiveram abertos durante a execução de processos num determinado momento. Além de ficheiros normais, inclui também diretórios, sockets, unidades ou portas, que são apresentados numa enumeração clara.
Como funciona o lsof?
Se o lsof não estiver disponível no seu sistema, pode instalá-lo com este comando Linux:
$ apt-get install lsofbashEm seguida, podes utilizar a ferramenta para obter uma visão geral dos processos em execução no teu computador. 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 correspondente:
$ lsof [opción] <formato>bashSe quiseres, podes utilizar o lsof sem especificar opções nem filtros. No entanto, se o fizeres, as informações obtidas poderão ser extremamente 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 informações. Aqui estão as mais importantes:
- -F: com esta opção, todos os resultados são apresentados numa única coluna.
- -l: com esta opção, é apresentado o ID do utilizador em vez do nome.
- -n: com esta opção, são apresentados os endereços IP correspondentes em vez dos nomes dos anfitriões.
- -P: com esta opção, as portas são apresentadas numericamente em vez dos nomes dos serviços.
- -r [x]: com esta opção, são apresentadas informações atualizadas a cada x segundos.
- -t: com esta opção, é apresentada apenas uma lista de PID (Identificador 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 informações sobre qual ficheiro é utilizado por qual processo.
- +D /diretório/utilizador: fornece informações sobre um diretório específico e o seu utilizador.
- /dev/unidade: permite verificar uma unidade específica.
- -i [TCP/UDP ou endereço IP ou porta]: fornece informações sobre quais processos utilizam quais serviços de rede.
- +L1: fornece informações sobre os ficheiros já apagados.
- +p PID: fornece informações sobre qual ficheiro cada PID utiliza.
- /caminho/ficheiro: com esta opção, obtém informações sobre um ficheiro específico.
- u [utilizador]: pode saber quais os ficheiros que cada utilizador utiliza.
Para que serve o lsof?
Dá uma vista de olhos a alguns exemplos práticos sobre a utilização do lsof.
$ lsof -u rootbashDesta forma, serão apresentados todos os ficheiros que o root tem abertos neste momento.
$ lsof /mount/pathbashÉ 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 -ibashDesta forma, obterás uma lista das portas abertas.