GNU/Linux >> Tutoriales Linux >  >> Linux

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

Como leyó en mi primer artículo, Explorando el sistema de archivos /proc , el /proc El sistema de archivos contiene una gran cantidad de archivos que los administradores del sistema pueden usar para descubrir la composición del hardware, los parámetros de configuración y el complemento de los procesos en un sistema en ejecución. No todos los archivos tienen el mismo valor para un administrador de sistemas. En este artículo, estoy cubriendo 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 valor significa valor para mí y para mi descubrimiento en sistemas heredados y en sistemas con los que estoy poco familiarizado.

La siguiente es una lista de /proc directorio de archivos de texto 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) el archivo tiene un 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 considero más valiosos, especialmente para la detección de sistemas heredados, son:

  • línea de comando
  • información de la CPU
  • meminfo
  • versión

Y los más valiosos son cpuinfo y meminfo .

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

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

/proc/líneacmd

Este archivo muestra los parámetros pasados ​​al núcleo en el momento en que 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 arrancó el núcleo porque cualquier interruptor o parámetro especial también se mostrará aquí. Y como toda la información bajo /proc , se puede encontrar en otros lugares y, por lo general, con un mejor formato, pero /proc Los archivos son muy útiles cuando no puede recordar el comando o no quiere grep por algo.

/proc/cpuinfo

El /proc/cpuinfo file es el primer archivo que reviso cuando me conecto a 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:

Esta es una máquina virtual y solo tiene una vCPU. Si su sistema contiene más de una 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. Me da una visión 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 el top comando para extraer algunos de los datos contenidos aquí. El /proc/meminfo me da una visión general rápida de la memoria que me gusta y puedo redirigir a otro archivo como una instantánea.

/proc/versión

El /proc/version El comando proporciona más información que el uname -a relacionado 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, uname -a El comando es suficiente para brindarle información de la versión del kernel, pero para aquellos de ustedes que son desarrolladores o que están muy preocupados por los detalles, el /proc/version archivo está ahí para usted.

Conclusión

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 anteriormente, hay otras formas de mostrar la información en /proc . Además, algunos de los /proc info no es lo que le gustaría usar para la evaluación del sistema. Por ejemplo, use comandos como vmstat 5 5 o iostat 5 5 para obtener una mejor imagen del rendimiento del sistema en lugar de leer uno de los /proc disponibles archivos.

[ ¿Necesita aprender más sobre la administración del sistema Linux? Realice un curso de administración de sistemas de Red Hat. ]


Linux
  1. 10 comandos básicos de Linux que necesitas saber

  2. Explorando el sistema de archivos /proc de Linux

  3. Linux – ¿Vincular /proc/mnt a /proc/mounts?

  4. /proc/[pid]/pagemaps y /proc/[pid]/maps | linux

  5. ¿Por qué en algunos sistemas Linux, el sistema de archivos raíz aparece como /dev/root en lugar de /dev/<nodo de dispositivo real> en mtab?

Todo lo importante que necesita saber sobre Hard Link en Linux

Todo lo importante que necesita saber sobre UID en Linux

Una guía para el sistema de archivos '/proc' en Linux

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

Todo lo que necesita saber sobre el directorio /tmp de Linux