El sáb, 02-05-2009 a las 23:53 -0400, Mauricio J. Adonis C. escribió: > El sáb, 02-05-2009 a las 14:23 -0400, Reiniel Gonzalez Martinez > escribió: > > Hola a t...@s, quisiera saber si existe algún comando que me dijera > > cuanta SWAP, CPU y RAM está utilizando mi servidor, en un determinado > > momento, no necesito ningún programa que me diga esto como htop por > > ejemplo solo los comandos….gracias de antemano > > > > > > Perdón, no me dí cuenta de tu procedencia, mil disculpas... esta es la > información más relevante a la que me refería... > clap clap clap Excelente rectificacion
> Texto tomado de la Web, tiene los permisos adecuados para ello... > (Espero te sirva) > > DESCUBRIENDO LAS POSIBILIDADES DEL DIRECTORIO /PROC > Copyright 2005-2008 Sergio González Durán > Se concede permiso para copiar, distribuir y/o modificar este documento > siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y > según los términos de la GNU Free Documentation License, Versión 1.2 o > cualquiera posterior publicada por la Free Software Foundation. > autor: Federico Kereki ([email protected]) > traducción: [email protected] > artículo original en inglés: Discover the possibilities of the /proc > folder > > ________________________________________________________________________ > > El directorio /proc es una bestia extraña. Realmente no existe, sin > embargo puedes explorarlo. Sus archivos de tamaño 0 no son ni binarios > ni textos, sin embargo puedes examinarlos y desplegar su contenido. Este > directorio especial contiene todos los detalles de tu sistema Linux, > incluyendo el kernel, procesos y parámetros de configuración. Estudiando > el directorio /proc, puedes aprender como los comandos de Linux trabajan > e incluso es posible realizar tareas administrativas. > > Bajo Linux, todo es administrado como un archivo; incluso los > dispositivos son accedidos como archivos (en el directorio /dev). Aunque > que podrías pensar que archivos "normales" son ya sea texto o binarios > (o posiblemente dispositivos o archivos pipe), el directorio /proc > contiene una extraño tipo de archivo: archivos virtuales. Estos archivos > son listados, pero realmente no existen en disco; el sistema operativo > los crea al vuelo si tratas de leerlos. > > La mayoría de los archivos virtuales siempre tienen una marca de tiempo > (timestamp) actual, lo que indica que están constantemente siendo > actualizados. El directorio /proc en si mismo es creado cada vez que > arrancas tu equipo. Se requiere ser root para poder examinar > completamente el directorio en su totalidad; algunos de los archivos > (tales como los relacionados a procesos) son propiedad del usuario que > los ejecutó. Y aunque casi tdos los archivos son de solo lectura, hay > algunos pocos con permisos de escritura (notablemente en /proc/sys) que > permiten realizar cambios en los parámetros del kernel. (Queda claro que > debes ser muy cuidados con esto) > > > > Organización del directorio /proc > El directorio /proc está organizado en directorios virtuales y > subdirectorios, que agrupan archivos de tópicos similares. Trabajando > como root el comando ls /proc te despliega algo como lo siguiente: > > #> ls /proc > 1 2432 3340 3715 3762 5441 815 devices modules > 129 2474 3358 3716 3764 5445 acpi diskstats mounts > 1290 248 3413 3717 3812 5459 asound dma mtrr > 133 2486 3435 3718 3813 5479 bus execdomains partitions > 1420 2489 3439 3728 3814 557 dri fb self > 165 276 3450 3731 39 5842 driver filesystems slabinfo > 166 280 36 3733 3973 5854 fs interrupts splash > 2 2812 3602 3734 4 6 ide iomem stat > 2267 3 3603 3735 40 6381 irq ioports swaps > 2268 326 3614 3737 4083 6558 net kallsyms sysrq-trigger > 2282 327 3696 3739 4868 6561 scsi kcore timer_list > 2285 3284 3697 3742 4873 6961 sys keys timer_stats > 2295 329 3700 3744 4878 7206 sysvipc key-users uptime > 2335 3295 3701 3745 5 7207 tty kmsg version > 2400 330 3706 3747 5109 7222 buddyinfo loadavg vmcore > 2401 3318 3709 3749 5112 7225 cmdline locks vmstat > 2427 3329 3710 3751 541 7244 config.gz meminfo zoneinfo > 2428 3336 3714 3753 5440 752 cpuinfo misc > Los directorios con números (más sobre esto en un momento) corresponden > a cada proceso en ejecución; un autoenlace simbólico apunta al proceso > actual. Algunos archivos virtuales proveen información sobre el > hardware, tal como /proc/cpuinfo y /proc/interrupts. Otros proporcionan > información relacionada a los archivos, tales como /proc/filesystems > o /proc/partitions. Los archivos situados bajo /proc/sys son > relacionados a la configuración de parámetros del kernel, como ya > veremos. > > El comando cat /proc/meminfo puede traer a la pantalla algo como lo > siguiente: > > # cat /proc/meminfo > MemTotal: 483488 kB > MemFree: 9348 kB > Buffers: 6796 kB > Cached: 168292 kB > ...varias líneas cortadas... > Si ejecutas los comandos top o free, es posible que reconozcas algunos > de estos valores. De hecho, varias utilerias muy conocidas acceden al > directorio /proc para obtener su información. Por ejemplo, si tu quieres > saber que tipo de kernel estás corriendo, puedes tratar con uname -srv, > o ir directamente al origen y teclear cat /proc/version. Algunos otros > archivos interesantes son: > > * /proc/apm: Proveé información sobre "Advanced Power Management", > si es que esta instalado. > * /proc/acpi: Un directorio similar al anterior que ofrece > bastantes datos sobre el más moderno ACPI (Advanced > Configuration and Power Interface). Por jemplo, para ver si tu > laptop está conectada a la corriente AC, puedes usar > cat /proc/acpi/ac_adapter/AC/state o en algunas distros > cat /proc/acpi/ac_adapter/ACAD/state, y así obtendrás "on line" > o "off line". > * /proc/cmdline: Muestra los parámetros que fueron pasados al > kernel al momento del arranque (boot time). En mi caso contiene > lo siguiente: > root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 > vga=0x317 resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi, que me dice que > en que partición está la raíz del filesystem, que modo VGA está en uso y más. > El último parámetro tiene que ver con openSUSE's System Configuration Profile > Management. > * /proc/cpuinfo: Muestra datos sobre el procesador de tu equipo. > Por ejemplo, en mi laptop, cat /proc/cpuinfo me da un listado > que comienza con:. > processor : 0 > vendor_id : AuthenticAMD > cpu family : 6 > model : 8 > model name : Mobile AMD Athlon(tm) XP 2200+ > stepping : 1 > cpu MHz : 927.549 > cache size : 256 KB > > Esto muestra que solo tengo un procesador, marcado como 0 de la > familia 80686 (El '6' en la familia de cpu es dígito medio): un > AMD Athlon XP, corriendo a poco menos de 1GHZ. > > * /proc/loadavg: Un archivo relacionado al anterior que muestra la > carga promedio del procesador; su información incluye el uso de > CPU en el último minuto, últimos cinco minutos y últimos 15 > minutos, asi como el número de procesos actuales ejecutándose. > * /proc/stat: También proporciona estadísticas, pero tomando en > cuenta el último boot (arranque). > * /proc/uptime: Un archivo pequeño que solo tiene dos números: por > cuantos segundos tu sistema ha estado encendido, y cuantos > segundos ha estado inactivo. > * /proc/devices: Despliega todos los dispositivos actuales > configurados y cargados de caracter y bloque. /proc/ide > y /proc/scsi proveen datos sobre dispositivos IDE y SCSI. > * /proc/ioports: Te muestra información sobre las regiones usadas > para comunicaciones de E/S (I/O) de esos dispositivos. > * /proc/dma: Muestra los canales "Direct Memory Access" en uso. > * /proc/filesystems: Muestra cuáles tipos de sistemas de archivos > (filesystems) están soportados por tu kernel. Una porción de > esto puede lucir como esto: > nodev sysfs > nodev rootfs > nodev bdev > nodev proc > nodev cpuset > ...some lines snipped... > nodev ramfs > nodev hugetlbfs > nodev mqueue > ext3 > nodev usbfs > ext2 > nodev autofs > > La primera columna muestra si el sistema de archivos está > montado en un dispositivo de bloques. En mi caso, tengo > particiones configuradas con ext2 y ext3. > > * /proc/mounts: Muestra todos los "mounts" usados por tu máquina > (la salida es muy similar a /etc/mtab). > Similarmente, /proc/partititons y /proc/swaps muestra todas las > particiones y el espacio swap respectivamente. > * /proc/fs: Si estás exportando sistemas de archivos con NFS, este > directorio tiene entre sus muchos subdirectorios y archivos > a /proc/fs/nfsd/exports, que muestra los sistemas de archivos > que están siendo compartidos y sus permisos. > * /proc/net: No hay nada mejor que esto para información de red. > Describir cada archivo en este directorio requeriría demasiado > espacio, pero incluye dev (todos los dispositivos de red), > varios archivos relacionados al firewall iptables, estadísticas > de red y sockets, información sobre wireless y más. > > También hay varios archivos relacionados a la RAM. Ya mencioné > anteriormente /proc/meminfo, pero también tienes a tu > disposición /proc/iomem, que muestra cuanta memoria RAM ha sido > utilizada por tu sistema y /proc/kcore, que representa la memoría física > de tu RAM. A diferencia de otros archivos virtuales, /proc/kcore muestra > un tamaño que es igual a la memoria RAM más una pequeña sobrecarga. (No > trates de darle cat a este archivo, porque su contenido es binario y > solo desconfigurará tu pantalla). Finalmente, hay muchos archicos y > directorios relacionados con el Hardware, tal como /proc/interrupts > y /proc/irq, /proc/pci (para todos los dispositivos PCI), /proc/bus y > demás, pero todos estos incluyen información muy específica que la > mayoría de los usuarios no necesitarán. > > > > ¿Que hay en un proceso? > Como ya lo había mencionado, los directorios con nombre numérico > representan a los procesos en ejecución. Cuando un proceso termina, su > directorio /proc desaparece automáticamente. Si examinas cualquiera de > estos directorios mientras existen, encontrarás bastantes archivos, > táles como: > > attr cpuset fdinfo mountstats stat > auxv cwd loginuid oom_adj statm > clear_refs environ maps oom_score status > cmdline exe mem root task > coredump_filter fd mounts smaps wchan > Veamos más de cerca a los archivos principales: > > * cmdline: Contiene el comando que inicio el proceso, con todos > sus parámetros. > * cwd: Enlace simbólico al directorio actual de trabajo (current > working directory cwd) del proceso; enlaces exe a los procesos > ejecutables y enlaces root a su directorio superior. > * environ: Muestras todas las variables de ambiente para el > proceso. > * fd: Contiene los descriptores de archivo para el proceso, > mostrando cuáles archivos o dispositivos lo están usando. > * maps, statm and mem: Trabaja con la memoria en uso por el > proceso. > * stat and status: Proveé información acerca del estatus del > proceso, pero el segundo es mucho más claro que el primero. > > Estos archivos plantean varios retos de programación de shell scripts. > Por ejemplo, si quieres cazar a los procesos zombie, puedes buscar en > todos los directorios numerados y verificar si aparece "(Z) Zombie" en > el archivo status. Una vez necesitaba verificar si cierto programa se > estaba ejecutando: Lo que hice fue escanear y mirar a los archivos > cmdline, buscando por la cadena indicada. (También puedes hacer esto con > la salida del programa ps, pero no es el punto en este artículo). Y si > quieres programar un programa que se vea mejor que top, toda la > información que necesitas esta aqui. > > > > Configurando el sistema: /proc/sys > /proc/sys no solo proveé información sobre el sistema, tambié facilita o > permita cambiar parámetros del kernel al vuelo, y habilta o deshabilita > características de usabilidad. (Por supuesto, esto puede dañar tu > sistema, considérate avisado.) > > Para determinar si puedes configurar un archivo o es solo de lectura, > usa ls -ld; si un archivo tiene el atributo "w", significa que puedes > configurar el kernel de alguna manera. Por ejemplo, ls > -ld /proc/kernel/* comienza como esto: > > dr-xr-xr-x 0 root root 0 2008-01-26 00:49 pty > dr-xr-xr-x 0 root root 0 2008-01-26 00:49 random > -rw-r--r-- 1 root root 0 2008-01-26 00:49 acct > -rw-r--r-- 1 root root 0 2008-01-26 00:49 acpi_video_flags > -rw-r--r-- 1 root root 0 2008-01-26 00:49 audit_argv_kb > -r--r--r-- 1 root root 0 2008-01-26 00:49 bootloader_type > -rw------- 1 root root 0 2008-01-26 00:49 cad_pid > -rw------- 1 root root 0 2008-01-26 00:49 cap-bound > Se puede observar que bootloader_type no está hecho para ser cambiado, > pero otros archivos si lo están. Para cambiar un archivo, puedes usar > algo como esto: > > echo 10 > /proc/sys/vm/swappiness > Este ejemplo en particular cambiará el rendimiento de la paginación de > la memoria virtual. Por cierto, estos cambios son solo temporales, y sus > efectos desapareceran cuando tu reinicies el sistema; usa sysctl y el > archivo de configuración /etc/sysctl.conf para afectar los cambios de > manera permanente. > > Veamos el nivel superior del directorio /proc/sys: > > * debug: Contiene (¡sorpresa!) información para depuración > (debugging). Esto es muy bueno si estás metido en el desarrollo > del kernel. > * dev: Proveé parámetros para dispositivos específicos en tu > sistema; por ejemplo, checa el directorio dev/cdrom. > * fs: Ofrece datos sobre cada posible aspecto del sistema de > archivos. > * kernel: Te permite afectar la configuración del kernel y su > operación directamente. > * net: Te permite controlar aspectos relacionados a la red. Se > cuidadoso, porque puedes perder conectividad. > * vm: Trata con el subsistema VM. > > > Conclusión > El directorio especial /proc proveé información completa y detallada > acerca de los trabajos internos de Linux y te permite ajustar a la > medida muchos aspectos de su configuración. Si te tomas algo de tiempo > para aprender las posibilidades de este directorio, estarás en posición > de obtener un sistema Linux más perfecto. ¿Y no es acaso lo que todos > queremos?. > > > Saludos, > Mauricio J. Adonis C. > ------------------------------------------ > Usuario Linux # 482032 > Usuario Ubuntu # 25554 > Ubuntu Code of Conduct - 1.0.1 signatario > (FD9329AC66C0907805831BF8E8D0B29A3AE3D244) > ------------------------------------------ -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

