Come utilizzare il comando Linux Fuser

Introduzione

Il comando fuser è un’utilità di Linux progettata per trovare quale processo sta utilizzando un determinato file, directory o socket. Fornisce anche informazioni sull’utente che sta eseguendo quel processo e sul tipo di accesso.

Come Utilizzare l’Utility fuser

Puoi consultare la pagina del manuale di fuser per avere una panoramica di tutte le opzioni da utilizzare con fuser. Puoi anche eseguire fuser da solo, senza alcuna opzione, per avere una panoramica della sintassi di 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]]]

Come Visualizzare i Processi in Esecuzione in una Directory

fuser può anche essere utilizzato con l’opzione -v, che esegue lo strumento in modalità dettagliata. L’opzione dettagliata è utilizzata per produrre più output in modo che l’utente possa osservare cosa sta facendo fuser. Esegui fuser sulla directory corrente, ., includendo l’opzione -v:

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

In questo caso, l’unico processo in esecuzione in questa directory è la shell interattiva bash dalla quale stai eseguendo i comandi in questo momento.

Quando viene eseguito in modalità dettagliata, l’utilità fuser fornisce informazioni sull’UTENTE, PID, ACCESSO e COMANDO di un processo. Il carattere c sotto ACCESSO indica il tipo di accesso, in questo caso significando la corrente directory. Ci sono altri tipi di accesso, come esecuzione di un eseguibile, root directory, file aperto e mapped file o libreria condivisa.

Come Trovare Processi Che Utilizzano Sockets di Rete

Potresti anche avere bisogno di cercare processi che utilizzano sockets TCP e UDP. Per dimostrare questo esempio, prima userai nc per creare un ascoltatore TCP sulla porta 8002, in modo che ci sia un processo in esecuzione che puoi osservare:

  1. nc -l -p 8002

Questo bloccherà il terminale finché è in esecuzione. In un’altra finestra del terminale, usa fuser per trovare il processo in esecuzione sulla porta TCP 8002 con l’opzione -n:

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

Nota: Per impostazione predefinita, lo strumento fuser controllerà sia i socket IPv4 che IPv6, ma puoi cambiarlo con le opzioni -4 e -6 per controllare solo le connessioni IPv4 o solo IPv6, rispettivamente.

Questa uscita mostra che l’ID del processo (PID) del processo che utilizza netcat è 17985 e il comando utilizzato per avviarlo è ‘nc’. L’ID del processo (PID) può essere utilizzato in molti modi, incluso per fermare o terminare un processo in esecuzione. Puoi saperne di più sulla gestione dei processi leggendo Come Usare ps, kill e nice per Gestire i Processi in Linux. Puoi anche utilizzare fuser stesso per terminare i processi in esecuzione su porte specifiche utilizzando il flag -k:

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

Se torni alla tua prima finestra terminale, noterai che il programma nc è stato terminato e è tornato alla shell.

La utility fuser può anche essere utilizzata per inviare segnali specifici a un processo. Quando utilizzato con l’opzione -k, il comando fuser invia il segnale KILL a un processo. Ci sono molti altri segnali che possono essere inviati a un processo in esecuzione specifico. Puoi elencarli con 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

Conclusione

In questo articolo hai appreso alcuni esempi di utilizzo di fuser per monitorare le porte e le directory in uso su un sistema Linux. fuser può essere particolarmente utile quando stai cercando di capire quali processi sconosciuti possono essere in esecuzione sul tuo sistema.

Successivo, potresti voler imparare come utilizzare netstat e du per monitorare altre risorse del server.

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