Como usar o comando Linux Fuser

Introdução

O comando fuser é uma utilidade do Linux projetada para encontrar qual processo está usando 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 de manual do fuser para ter uma visão geral de todas as opções para usar com o fuser. Você também pode executar o fuser por si só sem nenhuma opção 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 para que o usuário possa observar o que o fuser está fazendo. Execute o fuser no diretório atual, ., enquanto inclui 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 do qual você está executando comandos agora.

Ao executar no modo verboso, 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 em execução, diretório raiz, arquivo aberto file, e arquivo mapeado ou biblioteca compartilhada.

Como Encontrar Processos Usando Sockets de Rede

Você também pode precisar procurar processos usando sockets TCP e UDP. Para demonstrar este exemplo, primeiro use 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 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

Nota: 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 conexões IPv4 ou IPv6, respectivamente.

Esta saída mostra que o ID do processo (PID) do processo que está 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 aprender mais 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ê voltar à 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 usada com a opção -k, o comando fuser envia o sinal KILL para 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.

Em seguida, você pode querer aprender como usar netstat e du para monitorar outros recursos do servidor.

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