GNU/Linux >> Znalost Linux >  >> Linux

Jak zobrazit deskriptory otevřených souborů, ale nepoužívat příkaz lsof

Existují dva důvody lsof | wc -l nepočítá deskriptory souborů. Jedním z nich je, že uvádí věci, které nejsou otevřenými soubory, jako jsou načtené dynamicky propojené knihovny a aktuální pracovní adresáře; musíte je odfiltrovat. Další je, že lsof trvá nějakou dobu, než se spustí, takže může chybět soubory, které se otevírají nebo zavírají, když běží; proto je počet uvedených otevřených souborů přibližný. Podívejte se na /proc/sys/fs/file-nr vám poskytne přesnou hodnotu v konkrétním okamžiku.

cat /proc/sys/fs/file-nr je užitečné pouze tehdy, když potřebujete přesné číslo, hlavně pro kontrolu vyčerpání zdrojů. Pokud chcete zobrazit seznam otevřených souborů, musíte zavolat lsof nebo použijte nějakou ekvivalentní metodu, jako je lov pomocí vlečných sítí /proc/*/fd ručně.


Informace o procesu jsou dynamicky uchovávány systémem v adresářích pod /proc. Například proces s PID 1234 bude mít adresář s názvem /proc/1234.

Je tam docela dost informací, ale právě teď vás zajímá /proc/1234/fd podadresář.

POZNÁMKA:Abyste mohli prohlížet nebo otevírat soubory pro procesy, které nevlastníte, a pro procesy SetUID, musíte mít oprávnění root.

Příklad:

[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

Podívejte se také na zbytek souborů pod /proc ...zde se nachází mnoho užitečných informací ze systému.


Linux
  1. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  2. Jak vypočítat kontrolní součet CRC v Linuxu pomocí příkazu Cksum

  3. Jak si vyžádám soubor, ale neuložím jej pomocí Wget?

  1. Jak otevřít - přerušovaný název souboru pomocí terminálu?

  2. Jak obnovit otevřený, ale smazaný soubor v Linuxu pomocí ln místo cp?

  3. Jak otevřít soubor ve vim pomocí pipe

  1. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  2. Jak převést PPK na soubor PEM pomocí příkazu

  3. Jak rozdělit iso nebo soubor pomocí příkazu „split“ v Linuxu