Archivos importantes del sistema de archivos Linux /proc que debe conocer

Como leíste en mi primer artículo, , el /proc El sistema de archivos contiene muchos archivos que los administradores del sistema pueden usar para descubrir la composición del hardware, los ajustes de configuración y el complemento del proceso en un sistema en ejecución. No todos los archivos tienen el mismo valor para un administrador del sistema. En este artículo, cubro los archivos de texto (no directorios/procesos) con el valor más alto para los administradores de sistemas. Dicho esto, tenga en cuenta que mi definición de significa valor para mí y para mi descubrimiento de sistemas heredados y sistemas con los que no estoy familiarizado.

Aquí hay una lista de /proc Archivos de texto de directorio comunes en sistemas basados ​​en 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

Si emite un comando de lista larga (ls -l /proc), notará que todos los archivos excepto el kcore (no se muestra) tienen tamaño cero. Sin embargo, estos archivos no están vacíos. Contienen información valiosa.

$ 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

el /proc los archivos que encuentro más valiosos, especialmente para el descubrimiento de sistemas heredados, son:

  • línea de comando
  • información del procesador
  • meminfo
  • versión

Y los más preciados de ellos son cpuinfo y meminfo.

Nuevamente, no estoy diciendo que los otros archivos no sean valiosos, pero estos son los que he encontrado que son más valiosos para mí. por ejemplo, el /proc/uptime El archivo le brinda el tiempo de actividad del sistema en segundos. Para mí, no es particularmente valioso. Sin embargo, si quiero esta información, uso el uptime comando que también me da una versión más legible de /proc/loadavg además.

Por comparación:

$ 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

Creo que entiendes la idea.

Índice

/proc/líneacmd

Este archivo muestra los parámetros pasados ​​al núcleo cuando se inicia.

$ 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

El valor de esta información está en cómo se inició el kernel, ya que aquí también se enumerarán los parámetros o conmutadores especiales. Y como toda la información debajo /proc, se puede encontrar en otros lugares y generalmente con mejor formato, pero /proc Los archivos son muy útiles cuando no recuerda el comando o no quiere grep para algo.

/proc/cpuinfo

el /proc/cpuinfo El archivo es el primer archivo que reviso al iniciar sesión en un nuevo sistema. Quiero saber la composición de la CPU de un sistema y este archivo me dice todo lo que necesito saber.

$ 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:

Es una máquina virtual y solo tiene una vCPU. Si su sistema contiene múltiples CPU, la numeración de CPU comienza en 0 para la primera CPU.

/proc/meminfo

el /proc/meminfo file es el segundo archivo que compruebo en un nuevo sistema. Esto me da una idea general y específica de la asignación y el uso de la memoria de 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***

Creo que la mayoría de los administradores de sistemas usan el free o la top comando para extraer algunos de los datos contenidos aquí. el /proc/meminfo me da una instantánea rápida de la memoria que me gusta y puede redirigir a otro archivo como una instantánea.

/proc/versión

el /proc/version El comando proporciona más información que el comando asociado uname -a el comando lo hace. Aquí están los dos comparados:

$ 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

Por lo general, el uname -a es suficiente para brindarle información sobre la versión del kernel, pero para aquellos de ustedes que son desarrolladores o están muy orientados a los detalles, la /proc/version archivo está ahí para usted.

Envoltura

el /proc El sistema de archivos tiene una tonelada de información valiosa disponible para los administradores de sistemas que desean una forma conveniente y sin comandos de obtener información del sistema sin procesar. Como dije antes, hay otras formas de mostrar la información en /proc. Adicionalmente, algunos de los /proc info no es lo que le gustaría usar para la evaluación del sistema. Por ejemplo, utilice comandos como vmstat 5 5 Donde iostat 5 5 para obtener una mejor imagen del rendimiento del sistema en lugar de leer uno de los /proc archivos.

Artículos de interés

Subir