GNU/Linux >> Linux Esercitazione >  >> Linux

Importanti file di filesystem Linux /proc che devi conoscere

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


Linux
  1. 10 comandi di base di Linux che devi conoscere

  2. Esplorazione del filesystem Linux /proc

  3. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  4. Linux – Collegamento di /proc/mnt a /proc/mounts?

  5. /proc/[pid]/pagemaps e /proc/[pid]/maps | Linux

Tutto ciò che è importante sapere su Hard Link in Linux

Tutto ciò che è importante sapere sull'UID in Linux

Una guida al file system '/proc' in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Tutto quello che c'è da sapere sulla directory /tmp di Linux