El /proc
El sistema de archivos parece existir siempre porque se crea en el momento del arranque y se elimina al apagarlo, pero en realidad es un sistema de archivos virtual que contiene mucha información relevante sobre su sistema y sus procesos en ejecución. En este artículo, profundizaré en su contenido y en el valor que usted, como administrador de sistemas, puede obtener de él.
Nota:Estoy accediendo a archivos y directorios bajo /proc
como usuario estándar y no como root a menos que se indique lo contrario.
Si observa los archivos en /proc
, verá muchos de ellos (más de 150), según la cantidad de procesos que tenga en ejecución.
$ 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
Los archivos numerados son directorios que corresponden a números de proceso o ID de proceso (PID). Por ejemplo, en la primera columna hay procesos con los números 1, 10, 1055, 1057, 1059, etc. Dentro de esos directorios numerados por procesos, hay más archivos que tienen que ver con los propios procesos. A continuación se muestra una lista de los /proc/411
directorio.
$ 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
Hay algunos archivos en cada directorio que los usuarios normales no pueden leer. Para enumerar o abrir esos archivos, debe ser root.
[ Si desea ver un uso práctico de la información de /proc, consulte:Cómo borrar la memoria de intercambio en Linux ]
Notarás que una lista larga (ls -l /proc
) revela que los archivos de texto normales tienen un tamaño de 0. Normalmente, un archivo de tamaño cero significa que no tiene contenido. Sin embargo, estos /proc
archivos, como el /proc
propio sistema de archivos (procfs
), son virtuales. Ellos hacen contener información o, de lo contrario, ¿por qué estarían allí?
Por ejemplo, muestre el cpuinfo
archivo a la pantalla y verás lo que quiero decir.
$ 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:
Este archivo contiene información sobre su(s) CPU(s). Muchos de los archivos de tipo de texto normal contienen información del sistema y del hardware y puede cat
como lo haría con cualquier otro archivo de texto. Recuerde ignorar ese tamaño de archivo cero.
En la próxima entrega de este /proc
serie del sistema de archivos, explicaré la información proporcionada en los archivos. También puedes explorar por ti mismo. La mayoría de los archivos tienen nombres que describen la información que contienen. Algunos archivos son más valiosos que otros para la mente humana. No todos los archivos tienen cpuinfo
o meminfo
contiene información de nivel que es valiosa para un administrador de sistemas, pero la información es posiblemente importante para los desarrolladores, fabricantes de hardware o personal de solución de problemas del proveedor.
[ ¿Necesita aprender más sobre la administración del sistema Linux? Considere tomar un curso de administración de sistemas de Red Hat. ]