Como usar o comando Linux Fuser

Introdução

O comando fuser é uma utilidade do Linux projetada para encontrar qual processo está utilizando um determinado arquivo, diretório ou soquete. Ele também fornece informações sobre o usuário que está executando esse processo e o tipo de acesso.

Como Usar a Utilidade fuser

Você pode revisar a página do manual do fuser em man para ter uma visão geral de todas as opções a serem usadas com o fuser. Você também pode executar o fuser sem opções para obter uma visão geral da sintaxe do fuser:

  1. fuser
Output
No process specification given Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME... fuser -l fuser -V Show which processes use the named files, sockets, or filesystems. -a,--all display unused files too -i,--interactive ask before killing (ignored without -k) -k,--kill kill processes accessing the named file -l,--list-signals list available signal names -m,--mount show all processes using the named filesystems or block device -M,--ismountpoint fulfill request only if NAME is a mount point -n,--namespace SPACE search in this name space (file, udp, or tcp) -s,--silent silent operation -SIGNAL send this signal instead of SIGKILL -u,--user display user IDs -v,--verbose verbose output -w,--writeonly kill only processes with write access -V,--version display version information -4,--ipv4 search IPv4 sockets only -6,--ipv6 search IPv6 sockets only - reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

Como Visualizar Processos Executando em um Diretório

O fuser também pode ser usado com a opção -v, que executa a ferramenta no modo verbose. A opção verbose é usada para produzir mais saída, permitindo que o usuário observe o que o fuser está fazendo. Execute o fuser no diretório atual, ., incluindo a opção -v:

  1. fuser -v .
Output
USER PID ACCESS COMMAND /home/sammy: sammy 17604 ..c.. bash

Neste caso, o único processo em execução neste diretório é o shell interativo bash a partir do qual você está executando comandos neste momento.

Ao ser executado no modo verbose, o utilitário fuser fornece informações sobre o USUÁRIO, PID, ACESSO e COMANDO de um processo. O caractere c sob ACESSO mostra o tipo de acesso, neste caso, significando o diretório corrente. Existem outros tipos de acesso, como executável sendo executado, diretório raiz, arquivo aberto f ou arquivo mapeado ou biblioteca compartilhada m.

Como Encontrar Processos Usando Sockets de Rede

Talvez você também precise procurar processos usando sockets TCP e UDP. Para demonstrar este exemplo, primeiro você usará o nc para criar um ouvinte TCP na porta 8002, para que haja um processo em execução que você possa observar:

  1. nc -l -p 8002

Isso irá bloquear o terminal enquanto estiver em execução. Em outra janela do terminal, use o fuser para encontrar o processo em execução na porta TCP 8002 com a opção -n:

  1. fuser -v -n tcp 8002
Output
USER PID ACCESS COMMAND 8002/tcp: sammy 17985 F.... nc

Observação: Por padrão, a ferramenta fuser verificará tanto os sockets IPv4 quanto IPv6, mas você pode alterar isso com as opções -4 e -6 para verificar apenas as conexões IPv4 ou IPv6, respectivamente.

O resultado mostra que o ID do processo (PID) do processo usando o netcat é 17985 e o comando usado para iniciá-lo é ‘nc’. O ID do processo (PID) pode ser utilizado de várias maneiras, incluindo para parar ou encerrar um processo em execução. Você pode obter mais informações sobre o gerenciamento de processos lendo Como usar ps, kill e nice para gerenciar processos no Linux. Você também pode usar o próprio fuser para encerrar processos em execução em portas específicas usando a opção -k:

  1. fuser -k 8002/tcp
Output
8002/tcp: 18056

Se você retornar à sua primeira janela do terminal, notará que o programa nc foi encerrado e retornou ao shell.

A utilidade fuser também pode ser usada para enviar sinais específicos a um processo. Quando usado com a opção -k, o comando fuser envia o sinal KILL a um processo. Existem muitos outros sinais que podem ser enviados a um processo em execução. Você pode listar esses sinais com fuser -l:

  1. fuser -l
Output
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

Conclusão

Neste artigo, você aprendeu alguns exemplos de uso do fuser para monitorar portas e diretórios em uso em um sistema Linux. O fuser pode ser particularmente útil quando você está tentando entender quais processos desconhecidos podem estar em execução no seu sistema.

A seguir, você pode querer aprender a usar netstat e du para monitorar outros recursos do servidor.

Source:
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command