La potenza di fuser

By | gennaio 19, 2016

Talvolta può essere estremamente utile, ad esempio in pre­senza di errori del tipo device is busy, individuare quali pro­cessi stiano accedendo ad un particolare file o filesystem. Per ottenere ciò è sufficiente utilizzare il comando fuser nella sua più banale forma, come ad esempio:

fuser filename.txt 
/home/m4xp0w3r/filename.txt: 12768

Questo numero (12768) non è altro che l’ID del processo che sta accedendo al file specificato.Tramite l’opzione -u è possibile determinare l’owner del processo, ad esempio:

fuser -u /var/run/sendmail.pid 
/var/run/sendmail.pid: 2507 (root)

Per ottenere altre informazioni sull’operazione in corso, è possibile utilizzare l’opzione -v del comando ottenendo ad esempio:

fuser -v auth.log
                     UTENTE      PID ACCESSO COMANDO
/var/log/auth.log:   syslog     1058 F.... rsyslogd

Questo comando mostra l’utente proprietario del processo, l’ID del processo, come il file sia stato acceduto (in questo caso la lettera f indica che il file è aperto) e il comando che è stato utilizzato per accedervi, in questo caso un semplice more.
Inoltre, per terminare tutti quei processi che accedono un particolare file, è possibile utilizzare l’opzione -k in questo modo (se desiderato, in congiunzione con l’opzione -i, verrà richiesta conferma per ogni kill che verrà eseguito):

fuser -k filename.txt

Per quello che riguarda i filesystem, è necessario utilizzare il comando con l’opzione -m, che restituisce qualcosa del tipo:

fuser -m /dev/sdal 
/dev/sdal: 2935rce 2968m 2984rce 3014rce 3015rce 3063rce 3066rce 3068rce [ ... ] 3356rce 10054rce 10055rce 1013lrce 1024lm 10293rc

La maggior parte di questi processi accedono la directory corrente (lettera e), sono in esecuzione (lettera c) e coinvolgono directory di root (lettera r) mentre altri stanno utilizzando shared library o memory-mapped file (lettera m). Infine è anche possibile utilizzare il comando fuser per monitorare porte di rete (cambiando il namespace dell’operazione di default del comando), mediante l’opzione -n «protocol» <port_number>, come mostrato di seguito:

fuser -n tcp 22
22/tcp: 2399

che di fatto mostra quali processi stiano utilizzando il numero di porta specificato, operazione molto utile in presenza di errori del tipo port is busy. che di fatto mostra quali processi stiano utilizzando il numero di porta specificato, operazione molto utile in presenza di errori del tipo port is busy.

One thought on “La potenza di fuser

  1. Pingback: La potenza di lsof - prometheusproject

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *