Come hai letto nel mio primo articolo, Esplorazione del filesystem /proc , il /proc
filesystem contiene molti file che gli amministratori di sistema possono utilizzare per scoprire la composizione hardware, i parametri di configurazione e il complemento dei processi su un sistema in esecuzione. Non tutti i file hanno lo stesso valore per un amministratore di sistema. In questo articolo, sto trattando i file di testo (non directory/processi) con il valore più alto per gli amministratori di sistema. Detto questo, per favore, renditi conto che la mia definizione di valore significa valore per me e per la mia scoperta su sistemi ereditati e su sistemi con cui ho poca dimestichezza.
Quello che segue è un elenco di /proc
directory dei file di testo comuni sui sistemi basati su Red Hat:
/proc/apm
/proc/buddyinfo
/proc/cmdline
/proc/cpuinfo
/proc/crypto
/proc/devices
/proc/dma
/proc/execdomains
/proc/fb
/proc/filesystems
/proc/interrupts
/proc/iomem
/proc/ioports
/proc/kcore*
/proc/kmsg*
/proc/loadavg
/proc/locks
/proc/mdstat
/proc/meminfo
/proc/misc
/proc/modules
/proc/mounts
/proc/mtrr
/proc/partitions
/proc/pci
/proc/slabinfo*
/proc/stat
/proc/swaps
/proc/sysrq-trigger
/proc/uptime
/proc/version
* root readable only
Se emetti un comando di elenco lungo (ls -l /proc
), noterai che tutti i file tranne il kcore
(non mostrato) il file ha una dimensione zero. Tuttavia, questi file non sono vuoti. Contengono informazioni preziose.
$ ls -l /proc
-r--r--r--. 1 root root 0 Feb 25 23:13 buddyinfo
-r--r--r--. 1 root root 0 Feb 25 23:13 cgroups
-r--r--r--. 1 root root 0 Feb 25 23:13 cmdline
-r--r--r--. 1 root root 0 Feb 25 23:13 consoles
-r--r--r--. 1 root root 0 Feb 25 23:13 cpuinfo
-r--r--r--. 1 root root 0 Feb 25 23:13 crypto
-r--r--r--. 1 root root 0 Feb 25 23:13 devices
-r--r--r--. 1 root root 0 Feb 25 23:13 diskstats
-r--r--r--. 1 root root 0 Feb 25 23:13 dma
Il /proc
i file che trovo più preziosi, specialmente per il rilevamento del sistema ereditato, sono:
- linea cmd
- informazioni CPU
- meminfo
- versione
E i più preziosi di questi sono cpuinfo
e meminfo
.
Ancora una volta, non sto affermando che altri file non hanno valore, ma questi sono quelli che ho trovato che hanno più valore per me. Ad esempio, il /proc/uptime
file ti dà il tempo di attività del sistema in secondi. Per me, non è particolarmente prezioso. Tuttavia, se voglio queste informazioni, utilizzo il uptime
comando che mi fornisce anche una versione più leggibile di /proc/loadavg
anche.
In confronto:
$ cat /proc/uptime
46901.13 46856.69
$ cat /proc/loadavg
0.00 0.01 0.03 2/111 2039
$ uptime
00:56:13 up 13:01, 2 users, load average: 0.00, 0.01, 0.03
Penso che tu abbia un'idea.
/proc/cmdline
Questo file mostra i parametri passati al kernel al momento dell'avvio.
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1062.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
Il valore di queste informazioni sta nel modo in cui il kernel è stato avviato perché anche eventuali opzioni o parametri speciali verranno elencati qui. E come tutte le informazioni in /proc
, può essere trovato altrove e di solito con una formattazione migliore, ma /proc
i file sono molto utili quando non ricordi il comando o non vuoi grep
per qualcosa.
/proc/cpuinfo
Il /proc/cpuinfo
file è il primo file che controllo quando mi connetto a un nuovo sistema. Voglio conoscere la composizione della CPU di un sistema e questo file mi dice tutto ciò che devo sapere.
$ 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:
Questa è una macchina virtuale e ha solo una vCPU. Se il tuo sistema contiene più di una CPU, la numerazione della CPU inizia da 0 per la prima CPU.
/proc/meminfo
Il /proc/meminfo
file è il secondo file che controllo su un nuovo sistema. Mi offre uno sguardo generale e specifico all'allocazione e all'utilizzo della memoria di un sistema.
$ cat /proc/meminfo
MemTotal: 1014824 kB
MemFree: 643608 kB
MemAvailable: 706648 kB
Buffers: 1072 kB
Cached: 185568 kB
SwapCached: 0 kB
Active: 187568 kB
Inactive: 80092 kB
Active(anon): 81332 kB
Inactive(anon): 6604 kB
Active(file): 106236 kB
Inactive(file): 73488 kB
Unevictable: 0 kB
Mlocked: 0 kB
***Output truncated***
Penso che la maggior parte degli amministratori di sistema utilizzi free
o il top
comando per estrarre alcuni dei dati qui contenuti. Il /proc/meminfo
file mi offre una rapida panoramica della memoria che mi piace e può reindirizzare a un altro file come istantanea.
/proc/versione
Il /proc/version
Il comando fornisce più informazioni rispetto al relativo uname -a
comando fa. Ecco i due a confronto:
$ cat /proc/version
Linux version 3.10.0-1062.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019
$ uname -a
Linux centos7 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Di solito, uname -a
il comando è sufficiente per darti informazioni sulla versione del kernel, ma per quelli di voi che sono sviluppatori o che sono estremamente interessati ai dettagli, il /proc/version
il file è lì per te.
Conclusione
Il /proc
filesystem ha un sacco di informazioni preziose disponibili per gli amministratori di sistema che desiderano un modo conveniente e senza comandi per ottenere informazioni di sistema grezze. Come ho affermato in precedenza, ci sono altri modi per visualizzare le informazioni in /proc
. Inoltre, alcuni dei /proc
info non è ciò che vorresti usare per la valutazione del sistema. Ad esempio, usa comandi come vmstat 5 5
o iostat 5 5
per avere un quadro migliore delle prestazioni del sistema invece di leggere uno dei /proc
disponibili file.
[ Hai bisogno di saperne di più sull'amministrazione del sistema Linux? Segui un corso di amministrazione del sistema Red Hat. ]