Re: saber comandos
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 tod@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 (fkereki.@gmail.com)
> traducción: sergio.gonzalez.duran@gmail.com
> 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)
> ------------------------------------------
Reply to: