GNU/Linux >> Linux Esercitazione >  >> Linux

Come visualizzare i descrittori di file aperti ma non utilizzando il comando lsof

Ci sono due motivi lsof | wc -l non conta i descrittori di file. Uno è che elenca cose che non sono file aperti, come librerie collegate dinamicamente caricate e directory di lavoro correnti; devi filtrarli. Un altro è quel lsof richiede un po' di tempo per l'esecuzione, quindi possono mancare file aperti o chiusi mentre è in esecuzione; pertanto il numero di file aperti elencati è approssimativo. Guardando /proc/sys/fs/file-nr ti dà un valore esatto in un particolare momento.

cat /proc/sys/fs/file-nr è utile solo quando hai bisogno della cifra esatta, principalmente per verificare l'esaurimento delle risorse. Se vuoi elencare i file aperti, devi chiamare lsof , o utilizzare un metodo equivalente come la pesca a strascico /proc/*/fd manualmente.


Le informazioni sul processo sono mantenute dinamicamente dal sistema nelle directory sotto /proc. Ad esempio, il processo con PID 1234 avrà una directory chiamata /proc/1234.

Ci sono un bel po' di informazioni lì dentro, ma in questo momento sei interessato a /proc/1234/fd sottocartella.

NOTA:è necessario disporre dei permessi di root per visualizzare o aprire i file per i processi che non si possiedono, così come per i processi SetUID.

Esempio:

[email protected]:/proc# ls -l 2443/fd
total 0
lr-x------ 1 johan johan 64 Feb 27 10:26 0 -> pipe:[13637]
l-wx------ 1 johan johan 64 Feb 27 10:26 1 -> /home/johan/.xsession-errors
lrwx------ 1 johan johan 64 Feb 27 10:26 10 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 11 -> anon_inode:[eventfd]
lrwx------ 1 johan johan 64 Feb 27 10:26 12 -> socket:[39495]
lrwx------ 1 johan johan 64 Feb 27 10:26 13 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 14 -> anon_inode:inotify
lrwx------ 1 johan johan 64 Feb 27 10:26 15 -> anon_inode:[eventfd]
l-wx------ 1 johan johan 64 Feb 27 10:26 16 -> pipe:[37885]
lr-x------ 1 johan johan 64 Feb 27 10:26 17 -> pipe:[37886]
l-wx------ 1 johan johan 64 Feb 27 10:26 2 -> /home/johan/.xsession-errors
l-wx------ 1 johan johan 64 Feb 27 10:26 21 -> pipe:[167984]
lr-x------ 1 johan johan 64 Feb 27 10:26 22 -> pipe:[167985]
l-wx------ 1 johan johan 64 Feb 27 10:26 23 -> pipe:[170009]
lr-x------ 1 johan johan 64 Feb 27 10:26 24 -> pipe:[170010]
lrwx------ 1 johan johan 64 Feb 27 10:26 3 -> anon_inode:[eventfd]
lr-x------ 1 johan johan 64 Feb 27 10:26 4 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 5 -> socket:[14721]
l-wx------ 1 johan johan 64 Feb 27 10:26 6 -> pipe:[14726]
lrwx------ 1 johan johan 64 Feb 27 10:26 7 -> socket:[14730]
lrwx------ 1 johan johan 64 Feb 27 10:26 8 -> socket:[13984]
lrwx------ 1 johan johan 64 Feb 27 10:26 9 -> socket:[14767]

[email protected]:/proc# cat 2443/fdinfo/2
pos:    1244446
flags:  0102001

Dai anche un'occhiata al resto dei file sotto /proc... molte informazioni utili dal sistema risiedono qui.


Linux
  1. Come dividere iso o file usando il comando "split" in Linux

  2. Come creare file sparsi in Linux usando il comando 'dd'

  3. file:comando non trovato

  4. Come allegare un file usando il comando mail su Linux?

  5. Come aprire un file in vim usando pipe

Come decomprimere (aprire) il file Gz

Come creare un collegamento simbolico in Linux usando il comando Ln

Come aprire un file in Linux

Come bloccare un file di testo in Linux usando il comando flock

Come rimuovere le righe da un file usando il comando Sed

Come usare il comando lsof in Linux