De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 24 de março de 2015
O comando lsof
significa List Open Files, ou Liste Arquivos Abertos.
Quando invocado sem fornecer nenhum argumento, ele lista os processos em execução e os arquivos abertos por cada um deles:
$ lsof
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,1 4096 2 /
init 1 root rtd DIR 8,1 4096 2 /
init 1 root txt REG 8,1 265848 2228296 /sbin/init
init 1 root mem REG 8,1 47712 1311733 /lib/x86_64-linux-gnu/libnss_files-2.19.so
init 1 root mem REG 8,1 47760 1311763 /lib/x86_64-linux-gnu/libnss_nis-2.19.so
init 1 root mem REG 8,1 97296 1311713 /lib/x86_64-linux-gnu/libnsl-2.19.so
init 1 root mem REG 8,1 39824 1311743 /lib/x86_64-linux-gnu/libnss_compat-2.19.so
init 1 root mem REG 8,1 14664 1311737 /lib/x86_64-linux-gnu/libdl-2.19.so
init 1 root mem REG 8,1 252032 1315213 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
...
Listei acima apenas as primeiras linhas, na verdade este comando gerará uma saída que pode chegar a até mesmo centenas de linhas.
Com o uso de diretivas, posso obter listagens mais específicas de diversas formas.
Por exemplo, para listar os programas que estão acessando o arquivo
/var/log/syslog
, eu emito o comando:
sudo lsof /var/log/syslog
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 862 syslog 1w REG 8,1 92150 1325148 /var/log/syslog
Posso também solicitar que sejam listados todos os programas acessando
arquivos em um determinado diretório. Isto é feito fornecendo ao programa
lsof
a diretiva +D
.
sudo lsof +D /var/log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
smbd 730 root 2w REG 8,1 0 1593591 /var/log/samba/log.smbd
smbd 730 root 34w REG 8,1 0 1593591 /var/log/samba/log.smbd
rsyslogd 862 syslog 1w REG 8,1 92150 1325148 /var/log/syslog
rsyslogd 862 syslog 2w REG 8,1 35863 1310944 /var/log/kern.log
rsyslogd 862 syslog 4w REG 8,1 15211 1321755 /var/log/auth.log
smbd 923 root 2w REG 8,1 0 1593591 /var/log/samba/log.smbd
smbd 923 root 28w REG 8,1 0 1593591 /var/log/samba/log.smbd
Xorg 1412 root 0w REG 8,1 31850 1310898 /var/log/Xorg.0.log
Xorg 1412 root 2w REG 8,1 2282 1574974 /var/log/mdm/:0.log
console-k 1431 root 7w REG 8,1 16790 1575022 /var/log/ConsoleKit/history
nmbd 2708 root 2w REG 8,1 1800 1593512 /var/log/samba/log.nmbd
nmbd 2708 root 26w REG 8,1 1800 1593512 /var/log/samba/log.nmbd
cupsd 3003 root 4u REG 8,1 92830 1593620 /var/log/cups/access_log
cupsd 3003 root 5u REG 8,1 0 1593547 /var/log/cups/error_log
cupsd 3003 root 6u REG 8,1 0 1575143 /var/log/cups/page_log
Para listar os arquivos abertos por um determinado usuário, basta emitir o comando:
lsof +u queiroz
Ou então, para listar todos os comandos dos usuários, com exceção de um deles:
lsof +u ^queiroz
Para listar todos os arquivos abertos por um determinado processo:
lsof -p 730
Para matar todos os processos em uso por um determinado usuário:
kill -9 `lsof -t -u queiroz`
A diretiva -t
produz uma listagem simplificada, contendo apenas a identificação do processo.
$ lsof -t -u queiroz | head
1502
1781
1782
1854
1858
Da mesma forma, eu posso usar a diretiva -t
para listar o PID
(Process ID) dos processos acessando um determinado arquivo ou diretório.
$ lsof -t /var/log/syslog
862
ou
$ lsof -t +D /var/log
730
862
923
1412
1431
2708
3003
Fonte: 15 Linux lsof Command Examples (Identify Open Files)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários