Lo strumento Linux lsof vi consente di mo­ni­to­ra­re il sistema e di in­di­vi­dua­re più ra­pi­da­men­te eventuali problemi. A questo scopo, il programma elenca i file aperti e può essere ot­ti­miz­za­to per i vostri scopi at­tra­ver­so filtri e opzioni.

Che cos’è lsof su Linux?

Se volete mo­ni­to­ra­re e ana­liz­za­re il vostro sistema con Linux, lsof, che sta per “List open files”, (elenca i file aperti), è uno strumento molto facile da usare. Il programma, svi­lup­pa­to e pub­bli­ca­to da Vic Abell già nel 1994, è open source e fa parte dell’in­stal­la­zio­ne standard di numerose di­stri­bu­zio­ni Linux, come Debian o Ubuntu. La sua funzione è quella di fornire in­for­ma­zio­ni sui tipi di file che sono aperti, o lo sono stati, dai processi in ese­cu­zio­ne in quel momento. Oltre ai normali file, questi possono includere directory, socket, drive o porte. Suc­ces­si­va­men­te, i diversi processi e file vengono elencati in modo chiaro.

Come funziona lsof su Linux?

Se lsof non è presente sul vostro sistema, in­stal­la­te­lo sem­pli­ce­men­te con questo comando Linux:

$ apt-get install lsof
bash

Dopodiché, è possibile uti­liz­za­re lo strumento per ottenere un riepilogo dei processi di lavoro sul computer. Questo avviene perché nei sistemi Unix ogni cosa è vista fon­da­men­tal­men­te come un file. Lo strumento lsof su Linux permette quindi di ve­ri­fi­ca­re quali processi stanno accedendo a un de­ter­mi­na­to file.

Qual è la sintassi di lsof?

De­si­de­ra­te usare lsof? Questa è la sintassi di base del comando cor­ri­spon­den­te:

$ lsof [opzione] <formato>
bash

Potete anche uti­liz­za­re lsof com­ple­ta­men­te senza opzioni e filtri; tuttavia, poiché l’output ri­sul­tan­te sarebbe estre­ma­men­te esteso e confuso, si scon­si­glia questo approccio.

Quali sono le opzioni e i filtri di­spo­ni­bi­li con lsof su Linux?

lsof ha a di­spo­si­zio­ne numerose opzioni di output. Di seguito le più im­por­tan­ti:

  • -F: questa opzione assicura che tutti i risultati vengano emessi in un’unica colonna.
  • -l: questa opzione consente di vi­sua­liz­za­re l’ID utente invece del nome.
  • -n: uti­liz­zan­do questa opzione, vengono vi­sua­liz­za­ti gli indirizzi IP cor­ri­spon­den­ti invece dei nomi host.
  • -P: con questa opzione è possibile vi­sua­liz­za­re i numeri di porta invece dei nomi dei servizi.
  • -r [x]: questa opzione fa sì che l’output venga eseguito nuo­va­men­te ogni x secondi.
  • -t: con questa opzione viene emesso solo un elenco di PID (Process Iden­ti­fier).

Inoltre, lsof dispone di numerose opzioni di filtro. Le più comuni sono le seguenti:

  • -a: si tratta di un’ope­ra­zio­ne logica AND invece dell’ope­ra­zio­ne OR uti­liz­za­ta per im­po­sta­zio­ne pre­de­fi­ni­ta.
  • -c [processo]: in questo modo scoprite quale file è uti­liz­za­to da uno specifico processo.
  • +D /cartella/utente: questo filtro dà in­for­ma­zio­ni su una directory specifica e sul relativo utente.
  • /dev/drive: uti­liz­za­te questo filtro per con­trol­la­re un’unità specifica.
  • -i [TCP/UDP o in al­ter­na­ti­va indirizzo IP o porta]: in questo modo ottenete in­for­ma­zio­ni sui processi che uti­liz­za­no i servizi di rete.
  • +L1: questo filtro fornisce in­for­ma­zio­ni sui file già eliminati.
  • +p PID: fornisce in­for­ma­zio­ni su quale file è uti­liz­za­to da uno specifico PID.
  • /percorso/file: con questa opzione ottenete in­for­ma­zio­ni su un file specifico.
  • -u [utente]: in questo modo scoprite quale utente sta uti­liz­zan­do de­ter­mi­na­ti file.

A cosa serve lsof su Linux?

Per con­clu­de­re, vi mostriamo come e per cosa viene uti­liz­za­to lsof at­tra­ver­so alcuni esempi.

$ lsof -u root
bash

In questo modo potete vi­sua­liz­za­re tutti i file che root tiene at­tual­men­te aperti.

$ lsof /mount/path
bash

Spesso lsof viene uti­liz­za­to per ve­ri­fi­ca­re quali programmi im­pe­di­sco­no il comando mount, che non può essere eseguito se i file sono ancora aperti.

$ lsof -n -i
bash

In questo modo vengono elencate tutte le porte at­tual­men­te aperte.

Vai al menu prin­ci­pa­le