Comando Linux LSOF

Comando Linux LSOF
Lo strumento di comando "LSOF" in Linux è uno dei tanti strumenti integrati che è super utile per verificare l '"elenco di file aperti". Sì, il termine "LSOF" è l'abbreviazione del compito.

Esistono sempre diversi processi in esecuzione nel sistema, accedendo a diversi file del sistema. Questi file potrebbero essere file di disco, script, prese di rete, dispositivi, tubi nominati e altri. Usando "LSOF", è possibile eseguire molte cose, come il debug. È anche abbastanza utile per gli amministratori di sistema per capire quali file vengono accessibili da quali processi. Uno degli scenari più utili che ho trovato è quando stai per sconvolgere un filesystem ma è ancora accessibile.

Senza ulteriori indugi, iniziamo con "LSOF"! Suppongo che il tuo attuale sistema UNIX/Linux abbia già installato "LSOF".

Posizione

quale lsof

Ciò riporta il percorso completo del comando, in questo caso, "LSOF".

Versione "LSOF"
lsof -v

Ciò segnalerà informazioni approfondite della versione di "LSOF", inclusa la data di build della versione binaria, del compilatore, dei flag del compilatore e altri.

Uso di base "LSOF"

Esegui "LSOF" da solo.

lsof

Questo riporta un grande elenco di tutti i file a cui si accede al sistema al momento dell'esecuzione del comando.

Mentre tutti i campi sono autoesplicativi, per lo più si confondono sulle colonne "FD" e "Tipo" e sui loro valori. Dai un'occhiata.

FD: abbreviazione di "descrittore di file". Viene visualizzato i seguenti valori.

  • CWD: attuale directory di lavoro
  • RTD: directory di root
  • txt: testo del programma (dati, codice e altri)
  • Mem: file mappata da memoria
  • ERR: errore di informazioni FD
  • MMAP: dispositivo mappato a memoria
  • LTX: testo della libreria condivisa (dati e codice)
  • M86: file mappato di unione DOS

Ci sono anche altri valori che noterai nella colonna, come "1u" seguito da U, R, W, ecc. valore. Cosa significano quelli?

  • R: Leggi l'accesso
  • W: Accesso a scrittura
  • U: Leggi e scrivi Accesso
  • - : Modalità sconosciuta e contiene un carattere di blocco
  • ": La modalità è sconosciuta e non c'è carattere di blocco

Tipo: descrive il tipo di file e la sua identificazione. I valori sono i seguenti.

  • Dir: directory
  • CHR: file specialistico
  • Reg: File normale
  • FIFO: primo in, primo fuori

File aperti specifici dell'utente

Linux è una brillante piattaforma multiutente. Più utenti possono accedere al sistema contemporaneamente ed eseguire operazioni per cui hanno il permesso.

Per controllare i file a cui si accede da un determinato utente, eseguire il comando seguente.

lsof -u

Tuttavia, per verificare gli utenti con un rango più alto, "LSOF" avrà bisogno di un privilegio "superuser".

sudo lsof -u

Che ne dici di verificare tutti i comandi e i file a cui un determinato utente accede? Eseguire quello seguente.

lsof -i -u

Ancora una volta, per gli utenti con rango più alto, "LSOF" avrà bisogno del privilegio "Superuser".

sudo lsof -i -u

Processi di esecuzione specifici della porta

Per scoprire tutti i processi che stanno attualmente utilizzando una determinata porta, chiamare "LSOF" con il flag "-i" seguito dalle informazioni sul protocollo e sulla porta.

lsof -i<46><@hostname|host_address>
:

Ad esempio, per controllare tutti i programmi che attualmente accedono alla porta 80 tramite protocollo TCP/IP, eseguire il comando seguente.

LSOF -I TCP: 80

Questo metodo può anche essere utilizzato per mostrare tutti i processi che utilizzano porte all'interno di un determinato intervallo, ad esempio da 1 a 1000. La struttura di comando è simile a prima con un po 'di magia nella parte del numero di porta.

LSOF -I TCP: 1-1000

Processi specifici del protocollo

Ecco 2 esempi che mostrano i processi che stanno attualmente utilizzando i protocolli IPv4 e IPv6.

lsof -i 4
lsof -i 6

Elenco connessioni di rete

Il seguente comando segnalerà tutte le connessioni di rete dal sistema corrente.

lsof -i

Escluso con ^

Sì, possiamo escludere utente, porta, FD e altri specifici usando il carattere "^". Tutto quello che devi fare è usarlo con cautela in modo da non rovinare l'intero output.

In questo esempio, escludiamo tutti i processi dall'utente "root".

lsof -u^root

Esistono altri modi per utilizzare questo meccanismo escluso con "LSOF", ad esempio, con le bandiere come "-c", "-d" ecc. Non tutte le flag supportano questo meccanismo. Ecco perché consiglio di provare una demo con questo metodo con qualsiasi flag prima di implementarlo in alcuni script.

Ricerca PID

PID è una proprietà importante di qualsiasi processo di esecuzione sul sistema. Consente di individuare più fine a un determinato processo. Il nome del processo non è molto utile in molte situazioni in quanto lo stesso binario può creare copie di se stesso ed eseguire attività diverse in parallelo.

Se non sai come ottenere il PID di un processo, usa "PS" per elencare tutti i processi in esecuzione e filtrare l'output usando "grep" con il nome del processo e/o i comandi.

PS -A

Ora, esegui il filtro usando "grep".

PS -A | grep

Ora, controlla quali file a quel PID accede.

lsof -p

Elenco file Apri per un dispositivo specifico

La funzionalità di "LSOF" non è limitata a queste funzioni. Puoi anche filtrare il risultato di "LSOF" anche per dispositivo. A tale scopo, il comando assomigliarà a questo.

lsof

Questo comando è super utile per scoprire tutti i processi in esecuzione con le informazioni sul proprietario che accedono a un determinato filesystem. Se hai difficoltà a sbloccare un filesystem, questo è il modo migliore per andare.

lsof

Elenco i file aperti sotto una directory

Simile all'esempio precedente, basta passare il percorso della directory a "LSOF" per scoprire se qualsiasi processo sta accedendo.

Nota: "LSOF" controllerà la directory in modo ricorsivo, quindi può richiedere del tempo.

= LSOF +D

Bonus: termina tutte le attività dell'utente

Sii estremamente cauto con questa parte in quanto può semplicemente rovinare tutto ciò che un utente sta facendo. Il seguente comando ucciderà tutti i processi in esecuzione di un utente.

sudo kill -9 'lsof -t -u

Pensieri finali

Le caratteristiche di "LSOF" non si fermano solo qui. Quelli menzionati qui sono quelli di cui avremo bisogno di più quotidianamente. Ci sono molte altre funzionalità di "LSOF" che possono tornare utili (in casi specifici, ovviamente).

Per tutte le funzionalità disponibili e il loro utilizzo, dai un'occhiata alle pagine dell'uomo e delle informazioni di "LSOF".

uomo lsof
Info LSOF
lsof -?

Godere!