Potresti aver incontrato il detto: “Tutto è un file in Linux."Anche se questo non è del tutto vero, tiene una serie di verità ad esso.
In sistemi Linux e simili a UNIX, tutto è come un file. Ciò significa che le risorse nel sistema UNIX ricevono un descrittore di file, inclusi dispositivi di archiviazione, prese di rete, processi, ecc.
Un descrittore di file è un numero univoco che identifica un file e altri dispositivi di input/output. Descrive le risorse e come il kernel le accede. Pensalo come un gateway per le risorse hardware di astrazione del kernel.
Sfortunatamente, il concetto di descrittori di file va oltre lo scopo di questo tutorial; Considera il link fornito di seguito per iniziare a saperne di più:
https: // en.Wikipedia.org/wiki/file_descriptor
Ciò significa che i sistemi simili a unix e unix come Linux usano pesantemente tali file. Come utente di Power Linux, vedere i file aperti, il processo e gli utenti che li usano è incredibilmente utile.
Questo tutorial si concentrerà sui modi per visualizzare i file aperti e quale processo o utente è responsabile.
Prerequisiti
Prima di iniziare, assicurati di avere:
Se hai questi, iniziamo:
Utilità LSOF
Creato da Victor A Abell, elenca i file aperti o LSOF in breve, è un'utilità della linea di comando che ci consente di visualizzare i file aperti e i processi o gli utenti che li hanno aperti.
L'utilità LSOF è disponibile nelle principali distribuzioni Linux; Tuttavia, potresti trovarlo non installato e quindi potrebbe essere necessario installare manualmente.
Come installare LSOF su Debian/Ubuntu
Per installarlo su Debian, usa il comando:
Sudo Apt-get Aggiornamento
sudo apt -get installa lsof -y
Come installare su rehl/centos
Per installare su REHL e CentOS, usa il comando:
Sudo DNF Aggiornamento
sudo dnf installa lsof
Come installare su arco
Su Arch, chiama il gestore pacchetti utilizzando il comando:
Sudo Pacman -sy
sudo pacman -s lsof
Come installare su fedora
Su Fedora, usa il comando:
sudo yum installa lsof
Una volta installata e aggiornata l'utilità LSOF, possiamo iniziare a usarla.
Utilizzo di base LSOF
Per utilizzare lo strumento LSOF, immettere il comando:
sudo lsof
Una volta eseguito il comando sopra, LSOF scaricherà molte informazioni come mostrato di seguito:
L'output sopra mostra tutti i file aperti dai processi. L'output ha varie colonne, ciascuna che rappresenta informazioni specifiche sul file.
E molti altri.
Nota: Fare riferimento al manuale LSOF per informazioni dettagliate sulle colonne.
Come mostrare processi che hanno aperto un file
LSOF ci fornisce opzioni che ci aiutano a filtrare l'output per mostrare solo i processi che hanno aperto un file specifico.
Ad esempio, per vedere il file che ha aperto il file /bin /bash, utilizzare il comando come:
sudo lsof /bin /bash
Questo ti darà un output come mostrato di seguito:
Comando PID User Utente FD Dimensione dispositivo/Nome nodo
KSMTUNED 1025 ROOT TXT REG 253,0 1150704 428303/USR/Bin/Bash
BASH 2968 CENTOS TXT REG 253,0 1150704 428303/USR/Bin/Bash
BASH 3075 CENTOS TXT REG 253,0 1150704 428303/USR/Bin/Bash
Come mostrano i file aperti da un utente specifico
Possiamo anche filtrare l'output per mostrare i file aperti da un utente specifico. Lo facciamo usando il flag -u seguito dal nome utente come:
sudo lsof -u centos
Questo ti darà un output come mostrato di seguito:
Come mostrare i file aperti da un processo specifico
Supponiamo di voler visualizzare tutti i file aperti da un processo specifico? Per questo, possiamo usare il PID del processo per filtrare l'output.
Ad esempio, il comando seguente mostra i file aperti da Bash.
sudo lsof -p 3075
Questo ti darà solo i file aperti da SystemD come mostrato:
Come mostrare i file aperti in una directory
Per aprire i file in una directory specifica, possiamo passare l'opzione +D seguita dal percorso della directory.
Ad esempio, elenca i file aperti nella directory /etc.
sudo lsof +d /etc
Di seguito è riportato l'output per questo:
Come mostrare la connessione di rete
Poiché tutto in Linux è un file, possiamo ottenere i file di rete come file TCP o connessioni.
Possiamo usare il comando:
sudo lsof -i tcp
Questo ti darà le connessioni TCP nel sistema.
È inoltre possibile filtrare per la porta specifica utilizzando il comando mostrato di seguito:
sudo lsof -i: 22
Questo ti darà l'output come mostrato di seguito:
Come mostrare continuamente i file
LSOF ci fornisce una modalità per lottare l'uscita ogni pochi secondi. Ciò consente di monitorare continuamente i file aperti da un processo o dall'utente.
Questa opzione, tuttavia, richiede di terminare manualmente il processo.
Ad esempio, il comando di seguito monitora continuamente i file aperti sulla porta 22:
sudo lsof -r -i: 22
Come puoi vedere, nel terzo ciclo, LSOF cattura la connessione stabilita al server su SSH.
Conclusione
LSOF è un'utilità incredibilmente utile. Ti consente di monitorare file critici e monitorare gli utenti e i processi di apertura dei file. Questo può essere incredibilmente utile quando si risolvono i problemi o si cercano tentativi dannosi per il sistema.
Come mostrato in questo tutorial, utilizzando vari esempi e metodi, è possibile combinare la funzionalità fornita dallo strumento LSOF per il monitoraggio personalizzato.
Grazie per la lettura e la condivisione! Spero che tu abbia imparato qualcosa di nuovo!