GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So zeigen Sie offene Dateideskriptoren an, ohne den Befehl lsof zu verwenden

Es gibt zwei Gründe lsof | wc -l zählt keine Dateideskriptoren. Einer ist, dass es Dinge auflistet, die keine offenen Dateien sind, wie geladene dynamisch verknüpfte Bibliotheken und aktuelle Arbeitsverzeichnisse; Sie müssen sie herausfiltern. Ein anderer ist dieser lsof Die Ausführung dauert einige Zeit, daher können Dateien übersehen werden, die während der Ausführung geöffnet oder geschlossen werden; Daher ist die Anzahl der aufgelisteten geöffneten Dateien ungefähr. Betrachten wir /proc/sys/fs/file-nr gibt Ihnen einen genauen Wert zu einem bestimmten Zeitpunkt.

cat /proc/sys/fs/file-nr ist nur nützlich, wenn Sie die genaue Zahl benötigen, hauptsächlich um die Ressourcenerschöpfung zu überprüfen. Wenn Sie die geöffneten Dateien auflisten möchten, müssen Sie lsof aufrufen , oder verwenden Sie eine gleichwertige Methode wie das Schleppnetzfischen /proc/*/fd manuell.


Prozessinformationen werden vom System dynamisch in Verzeichnissen unter /proc gespeichert. Zum Beispiel hat der Prozess mit der PID 1234 ein Verzeichnis namens /proc/1234.

Es sind ziemlich viele Informationen darin, aber im Moment interessieren Sie sich für /proc/1234/fd Unterverzeichnis.

HINWEIS:Sie benötigen Root-Berechtigungen, um Dateien für Prozesse anzuzeigen oder zu öffnen, deren Eigentümer Sie nicht sind, sowie für SetUID-Prozesse.

Beispiel:

[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

Sehen Sie sich auch die restlichen Dateien unter /proc an ... hier befinden sich viele nützliche Informationen aus dem System.


Linux
  1. So konvertieren Sie eine PPK-Datei in eine PEM-Datei mit Command

  2. So teilen Sie ISO oder Datei mit dem Befehl „Split“ in Linux

  3. Datei:Befehl nicht gefunden

  4. Wie hängt man eine Datei mit dem Mail-Befehl unter Linux an?

  5. So öffnen Sie eine Datei in vim mit Pipe

So entpacken (öffnen) Sie die Gz-Datei

So erstellen Sie einen symbolischen Link in Linux mit dem Ln-Befehl

So öffnen Sie eine Datei unter Linux

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

So verwenden Sie den Befehl lsof unter Linux