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

Untersuchen des Linux /proc-Dateisystems

Der /proc Das Dateisystem scheint immer zu existieren, da es beim Booten erstellt und beim Herunterfahren entfernt wird, aber es ist tatsächlich ein virtuelles Dateisystem, das viele relevante Informationen über Ihr System und seine laufenden Prozesse enthält. In diesem Artikel tauche ich tief in seinen Inhalt ein und welchen Wert Sie als Systemadministrator daraus ziehen können.

Hinweis:Ich greife auf Dateien und Verzeichnisse unter /proc zu als Standardbenutzer und nicht als root, sofern nicht anders angegeben.

Schaut man sich die Dateien unter /proc an , sehen Sie viele davon (150+), je nachdem, wie viele Prozesse Sie ausführen.

$ ls /proc
1     174    26    2902   4109   531          fb
10    175    2601  2904   41275  546          filesystems
1004  176    2602  2907   41292  547          fs
<snip>
166   2589   2889  4000   47452  dma          vmstat
167   2594   2898  4005   475    driver       zoneinfo
168   2595   29    40986  522    execdomains

Die nummerierten Dateien sind Verzeichnisse, die Prozessnummern oder Prozess-IDs (PIDs) entsprechen. In der ersten Spalte befinden sich beispielsweise Prozesse mit den Nummern 1, 10, 1055, 1057, 1059 usw. In diesen prozessnummerierten Verzeichnissen befinden sich weitere Dateien, die mit den Prozessen selbst zu tun haben. Unten ist eine Auflistung von /proc/411 Verzeichnis.

$ ls /proc/411
ls: cannot read symbolic link /proc/411/cwd: Permission denied
ls: cannot read symbolic link /proc/411/root: Permission denied
ls: cannot read symbolic link /proc/411/exe: Permission denied
arch_status      fdinfo      numa_maps      smaps_rollup
attr             gid_map     oom_adj        stack
autogroup        io          oom_score      stat
auxv             latency     oom_score_adj  statm
cgroup           limits      pagemap        status
clear_refs       loginuid    patch_state    syscall
cmdline          map_files   personality    task
comm             maps        projid_map     timers
coredump_filter  mem         root           timerslack_ns
cpuset           mountinfo   sched          uid_map
cwd              mounts      schedstat      wchan
environ          mountstats  sessionid
exe              net         setgroups
fd               ns          smaps

In jedem Verzeichnis gibt es einige Dateien, die normale Benutzer nicht lesen können. Um diese Dateien aufzulisten oder zu öffnen, müssen Sie root sein.

[Wenn Sie eine praktische Verwendung der Informationen von /proc sehen möchten, lesen Sie:So löschen Sie den Auslagerungsspeicher unter Linux]

Sie werden feststellen, dass eine lange Auflistung (ls -l /proc ) zeigt, dass die regulären Textdateien eine Größe von 0 haben. Normalerweise bedeutet eine Datei mit der Größe null, dass sie keinen Inhalt enthält. Allerdings sind diese /proc Dateien, wie /proc Dateisystem selbst (procfs ), sind virtuell. Sie tun Informationen enthalten, oder warum sollten sie sonst dort sein?

Zeigen Sie beispielsweise cpuinfo an Datei auf den Bildschirm und Sie werden sehen, was ich meine.

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 142
model name	: Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
stepping	: 9
cpu MHz		: 2303.998
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d
bogomips	: 4607.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

Diese Datei enthält Informationen über Ihre CPU(s). Viele der regulären Textdateien enthalten Hardware- und Systeminformationen, und Sie können cat sie wie jede andere Textdatei. Denken Sie daran, diese Null-Dateigröße zu ignorieren.

In der nächsten Ausgabe dieses /proc filesystem series, erkläre ich die in den Dateien enthaltenen Informationen. Sie können auch selbst auf Entdeckungsreise gehen. Die meisten Dateien haben Namen, die die darin enthaltenen Informationen beschreiben. Einige Dateien sind für den menschlichen Verstand wertvoller als andere. Nicht jede Datei hat cpuinfo oder meminfo -Level-Informationen darin enthalten, die für einen Systemadministrator wertvoll sind, aber die Informationen sind möglicherweise wichtig für Entwickler, Hardwarehersteller oder das Problembehandlungspersonal des Anbieters.

[ Möchten Sie mehr über die Linux-Systemadministration erfahren? Erwägen Sie die Teilnahme an einem Red Hat Systemadministrationskurs. ]


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux – Was bedeuten die Flags in /proc/cpuinfo?

  3. Linux – Wie unterscheidet sich der /proc//exe Symlink von gewöhnlichen Symlinks?

  4. Linux – /proc/mnt mit /proc/mounts verknüpfen?

  5. Linux – Dateien verlieren, wenn ich den Cache leeren (echo 3> /proc/sys/vm/drop_caches)?

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Eine Anleitung zum Dateisystem „/proc“ unter Linux

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wo ist das temporäre Verzeichnis in Linux?

Wo ist der Inhalt von /proc des Linux-Kernels dokumentiert?