Conky es un monitor del sistema local totalmente configurable, está hecho para trabajar gráficamente sobre el fondo de escritorio (estando de este modo siempre presente sin "estorbar"). Escogí probar este monitor por comentarios agradables a su favor en
varios blogsInstalaciónEn Ubuntu 7.04 su instalación se efectua simplemente poniendo en consola:
sudo apt-get install conky
Desde este momento se puede ejecutar con su configuración predeterminada:
conky
(ejecutar con la opción -o en caso de que queramos que aparezca en una ventana)
ConfiguraciónComo ya hemos dicho es un monitor "altamente configurable" y es que toda su interfaz se configura en base a un fichero de texto en el que describimos lo que queremos que aparezca y
cómo queremos que aparezca, este fichero admite
variables propias del programa y scripts del usuario (que puede programarse uno en caso de que las funciones propias no cubran nuestras necesidades). De este modo el usuario puede diseñar el monitor del sistema a su medida sin que necesariamente tenga que ser un "experto".
Desde la página del proyecto podemos descargar
ejemplos de configuración. En mi caso he construido la siguiente interfaz a partir de uno de los ejemplos:
En el que se han usado, entre otras, las siguientes variables propias de conky:
- $nodename: Nombre del equipo
- $kernel: Versión del Kernel
- $uptime: Tiempo UP
- $loadavg: Cargas del sistema
- $cpu%: Porcentaje de uso de la CPU
- ${cpubar}: Muestra gráfica en una barra del uso de CPU
- ${cpugraph cpu0 32,309 000000 7f8ed3}: Muestra gráfica en linea del tiempo del uso de la CPU0
- $mem/$memmax: Memoria RAM usada/Memoria RAM total
- $processes: Procesos
- $running_processes: Procesos en ejecución
- ${downspeed eth0}: Velocidad de descarga del dispositivo eth0
- ${upspeed eth0}: Velocidad de subida del dispositivo eth0
- ${tcp_portmon 1 65535 count}: Conexiones TCP
- ${fs_free /mnt/fat32/}: Capacidad libre en el dispositivo de almacenamiento /mnt/fat32
- ${fs_size /mnt/fat32/}: Capacidad total en el dispositivo de almacenamiento /mnt/fat32
- ${fs_bar /mnt/fat32/}: Representación en una barra de la capacidad en el dispositivo de almacenamiento /mnt/fat32
- ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}: Nombre, PID, Uso de CPU y uso de memoria del proceso que está usando más CPU
- ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}: Nombre, PID, Uso de CPU y uso de memoria del proceso que está usando más Memoria
- $diskio: Uso de la Entrada/Salida
- ${diskiograph 32,309 000000 7f8ed3 5000}: Muestra gráfica de la Entrada/Salida
- ${tail /var/log/apache2/access.log 15}: Muestra las últimas 15 lineas del log de accesos de Apache
A lo que hay que agregar la funcionalidad proveniente de los scripts que podemos construir e integrar en el programa.
Adjunto el fichero de configuración:
background yes
font 7x13
use_xft no
on_bottom yes
mpd_host 192.168.150.2
mpd_port 6600
update_interval 1.0
total_run_times 0
own_window no
own_window_transparent no
double_buffer yes
minimum_size 280 5
draw_shades yes
draw_outline no
draw_borders no
stippled_borders 8
border_margin 4
border_width 1
default_color black
default_shade_color black
default_outline_color black
alignment top_right
maximum_width 500
gap_x 12
gap_y 12
no_buffers yes
uppercase no
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale no
use_spacer no
# stuff after 'TEXT' will be formatted on screen
TEXT
${color #5b6dad}$nodename linux-$kernel${alignr}${time %T}
${color #5b6dad}System:
${color #5b6dad} Uptime:${color #7f8ed3} $uptime ${color #5b6dad}- Load:${color #7f8ed3} $loadavg
${color #5b6dad} CPU Frequency:${color #7f8ed3} $freq_dyn_g ${color #5b6dad} Maximum:${color #7f8ed3} $freq_g
${color #5b6dad} CPU Usage:${color #7f8ed3} $cpu% ${cpubar}
${color #000000}${cpugraph cpu0 32,495 000000 7f8ed3}
${color #000000}${cpugraph cpu1 32,495 000000 7f8ed3}
${color #5b6dad} RAM Usage:${color #7f8ed3} $mem/$memmax - $memperc% ${membar}
${color #5b6dad} Swap Usage:${color #7f8ed3} $swap/$swapmax - $swapperc% ${swapbar}
${color #5b6dad} Processes:${color #7f8ed3} $processes ${color #5b6dad}Running:${color #7f8ed3} $running_processes
${color #5b6dad}Networking:
${color #5b6dad}Down:${color #7f8ed3} ${downspeed eth0} k/s${color #5b6dad}${offset 160}Up:${color #7f8ed3} ${upspeed eth0} k/s
${color #000000}${downspeedgraph eth0 32,245 000000 7f8ed3} ${color #000000}${upspeedgraph eth0 32,245 000000 7f8ed3}
${color #5b6dad}Address: ${color #7f8ed3}${addr eth0}${alignr}${color #5b6dad}TCP Connections: ${color #7f8ed3}${tcp_portmon 1 65535 count}
${color #5b6dad}File Systems:
${color #5b6dad}/ ${color #7f8ed3}${fs_free /}/${fs_size /} ${color #7f8ed3}${fs_bar /}
${color #5b6dad}FAT32 ${color #7f8ed3}${fs_free /mnt/fat32/}/${fs_size /mnt/fat32/} ${color #7f8ed3}${fs_bar /mnt/fat32/}
${color #5b6dad}Archivos ${color #7f8ed3}${fs_free /mnt/archivos/}/${fs_size /mnt/archivos/} ${color #7f8ed3}${fs_bar /mnt/archivos/}
${color #5b6dad}SAExt3 ${color #7f8ed3}${fs_free /mnt/saext3/}/${fs_used /mnt/saext3/} ${color #7f8ed3}${fs_bar /mnt/saext3/}
${color #5b6dad}Name PID CPU% MEM%
${color #7f8ed3} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color #7f8ed3} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color #7f8ed3} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color #5b6dad}Mem usage
${color #7f8ed3} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color #7f8ed3} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color #7f8ed3} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
Disk IO: $diskio
${diskiograph 32,495 000000 7f8ed3 5000}
${tail /var/log/apache2/access.log 15}
Este fichero debe ser llamado a la ejecución del programa del siguiente modo:
conky -c fichero
Siendo fichero la ruta al fichero Archivo de configuración
En este blog hay también un fichero de configuración interesante para conky.ValoraciónConky es muy util y muy adaptable para su uso en el sistema local, su funcionamiento es simple (tan simple que no existe iteracción con el usuario), consume unos recursos aceptables (alrededor de 4% en mi equipo) y admite scripts que hayamos programado nosotros extendiendo así su utilidad a nuestra capacidad de programación, tiene la desventaja de que la configuración se establece a través de un fichero de texto plano y de que pega parpadeos cuando tiene que cargar mucha información.