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. ]