lsof su Linux: come elencare i file e analizzare il sistema
Lo strumento Linux lsof vi consente di monitorare il sistema e di individuare più rapidamente eventuali problemi. A questo scopo, il programma elenca i file aperti e può essere ottimizzato per i vostri scopi attraverso filtri e opzioni.
Che cos’è lsof su Linux?
Se volete monitorare e analizzare il vostro sistema con Linux, lsof, che sta per “List open files”, (elenca i file aperti), è uno strumento molto facile da usare. Il programma, sviluppato e pubblicato da Vic Abell già nel 1994, è open source e fa parte dell’installazione standard di numerose distribuzioni Linux, come Debian o Ubuntu. La sua funzione è quella di fornire informazioni sui tipi di file che sono aperti, o lo sono stati, dai processi in esecuzione in quel momento. Oltre ai normali file, questi possono includere directory, socket, drive o porte. Successivamente, i diversi processi e file vengono elencati in modo chiaro.
Come funziona lsof su Linux?
Se lsof non è presente sul vostro sistema, installatelo semplicemente con questo comando Linux:
$ apt-get install lsof
bashDopodiché, è possibile utilizzare lo strumento per ottenere un riepilogo dei processi di lavoro sul computer. Questo avviene perché nei sistemi Unix ogni cosa è vista fondamentalmente come un file. Lo strumento lsof su Linux permette quindi di verificare quali processi stanno accedendo a un determinato file.
Qual è la sintassi di lsof?
Desiderate usare lsof? Questa è la sintassi di base del comando corrispondente:
$ lsof [opzione] <formato>
bashPotete anche utilizzare lsof completamente senza opzioni e filtri; tuttavia, poiché l’output risultante sarebbe estremamente esteso e confuso, si sconsiglia questo approccio.
Quali sono le opzioni e i filtri disponibili con lsof su Linux?
lsof ha a disposizione numerose opzioni di output. Di seguito le più importanti:
- -F: questa opzione assicura che tutti i risultati vengano emessi in un’unica colonna.
- -l: questa opzione consente di visualizzare l’ID utente invece del nome.
- -n: utilizzando questa opzione, vengono visualizzati gli indirizzi IP corrispondenti invece dei nomi host.
- -P: con questa opzione è possibile visualizzare i numeri di porta invece dei nomi dei servizi.
- -r [x]: questa opzione fa sì che l’output venga eseguito nuovamente ogni x secondi.
- -t: con questa opzione viene emesso solo un elenco di PID (Process Identifier).
Inoltre, lsof dispone di numerose opzioni di filtro. Le più comuni sono le seguenti:
- -a: si tratta di un’operazione logica AND invece dell’operazione OR utilizzata per impostazione predefinita.
- -c [processo]: in questo modo scoprite quale file è utilizzato da uno specifico processo.
- +D /cartella/utente: questo filtro dà informazioni su una directory specifica e sul relativo utente.
- /dev/drive: utilizzate questo filtro per controllare un’unità specifica.
- -i [TCP/UDP o in alternativa indirizzo IP o porta]: in questo modo ottenete informazioni sui processi che utilizzano i servizi di rete.
- +L1: questo filtro fornisce informazioni sui file già eliminati.
- +p PID: fornisce informazioni su quale file è utilizzato da uno specifico PID.
- /percorso/file: con questa opzione ottenete informazioni su un file specifico.
- -u [utente]: in questo modo scoprite quale utente sta utilizzando determinati file.
A cosa serve lsof su Linux?
Per concludere, vi mostriamo come e per cosa viene utilizzato lsof attraverso alcuni esempi.
$ lsof -u root
bashIn questo modo potete visualizzare tutti i file che root tiene attualmente aperti.
$ lsof /mount/path
bashSpesso lsof viene utilizzato per verificare quali programmi impediscono il comando mount, che non può essere eseguito se i file sono ancora aperti.
$ lsof -n -i
bashIn questo modo vengono elencate tutte le porte attualmente aperte.