Inicio > Resolución problemas, Utilidades > Conky + hddtemp

Conky + hddtemp

Domingo, 11 de enero de 2009 Dejar un comentario Ir a comentarios

spain

Hace mucho tiempo que llevo usando conky un magnífico monitor del sistema extremadamente ligero y con una gran cantidad de posibilidades cómo ya he comentado otras veces. Últimamente me preocupo mucho por la estabilidad de mi ordenador y por ello intento tener todo controlado, entre otras cosas la temperatura del procesador, placa base y discos duros. En esta entrada explico cómo poder monitorizar la temperatura de nuestros discos duros mediante hddtemp.

El motivo de que escriba esta entrada es que hay un pequeño problema para poder monitorizar la temperatura de los discos duros con hddtemp en conky. El problema consiste en que hddtemp necesita de privilegios de root y conky se ejecuta en modo de usuario. Para solventar este problema hacemos uso de la aplicación netcat, una de las aplicaciones más potentes dentro de nuestra querida consola de GNU/Linux.

Cuando instalamos hddtemp lo configuramos para que se ejecute en un determinado puerto (7634 por defecto) y una determinada IP (localhost o 127.0.0.1 por defecto). Cada 5 minutos (300 segundos) esta aplicación deja un mensaje disponible con la temperatura de cada uno de los discos que tenemos instalado en el sistema. Con netcat podemos escuchar la información disponible en una determinada IP y un determinado puerto con privilegios de usuario normal, y en conky podemos ejecutar cualquier comando que queramos, por lo que ya tenemos el problema resuelto.

Lo primero que vamos a hacer es ver que escuchamos en el puerto de hddtemp:

pipo@pipo-desktop:~$ nc localhost 7634
|/dev/sg0|WDC WD1500HLFS-01G6U0|21|C||/dev/sg2|ST380011A|23|C||/dev/sda|WDC WD1500HLFS-01G6U0|21|C||/dev/sdb|ST380011A|23|C|

Cómo podéis ver se muestra el nombre de varios discos y su temperatura. Para coger solo la información de la temperatura vamos a utilizar las conocidas tuberías (|) junto al comando cut, con el que podemos delimitar que caracteres queremos coger de una determinada cadena. Fijaos en los siguientes comandos:

pipo@pipo-desktop:~$ nc localhost 7634 | cut -c33-34
21
pipo@pipo-desktop:~$ nc localhost 7634 | cut -c58-59
23

Con el comando cut y su opción -c podemos especificar que carácteres en concreto queremos de la línea mostrada. De este modo seleccionamos los carácteres que quedan entre las cifras mostradas para cada dispositivo. Una vez que tenemos estos valores es hora de escribir las líneas adecuadas en conky para que se muestre debidamente la temperatura.

Disco1: ${execi 300 nc localhost 7634 | cut -c33-34;}ºC
Disco2: ${execi 300 nc localhost 7634 | cut -c58-59;}ºC

Con la variable execi de conky podemos especificar que se lance un comando determinado cada determinado número de segundos (300). En este caso ponemos 300 porque hddtemp por defecto viene configurado para mostrar la temperatura de los discos cada 5 minutos. En caso de que queramos ver las temperaturas de los discos en intervalos de tiempo mayores o menores debemos configurar estas líneas en conky y además la configuración de hddtemp.

conky-temps-hdd

Más información en UbuntuForums.

england

I’ve been using conky for a long time, a great light-weight system monitor and with a lot of possibilities as I said before. Lately I’m very concerned about the stability of my computer and so try to have everything under control, among other thing, the proccessor, motherbord and hard drive temperatures. This entry explains how to monitor the temperature of our hard drives using hddtemp.

The reason to write this entry is that there is a small problem to monitor the temperature of hard drives with hddtemp in conky. The problem consist of hddtemp requires root privileges and conky runs in user mode. To solve this problem we can use netcat application, one of the most powerful in our beloved console of GNU/Linux.

When we install hddtemp, configure it to run on a certain port (7634 by default) and a fixed IP (localhost or 127.0.0.1 by default). Every 5 minutes (300 seconds) this application left a available messagewith the temperature of each disk we have installed on our system. Netcan can listen to the information available in a specific IP and port in user mode, and conky can execute any command you want, so we have the problem resolved.

The first thing we do is to see what we heard in the hddtemp port:

pipo@pipo-desktop:~$ nc localhost 7634
|/dev/sg0|WDC WD1500HLFS-01G6U0|21|C||/dev/sg2|ST380011A|23|C||/dev/sda|WDC WD1500HLFS-01G6U0|21|C||/dev/sdb|ST380011A|23|C|

How you can see the name and temperature of several disks is shown. To take only the information of the temperatures we will use the known pipes (|) with the cut command which can delimit the characters that we want from a particular string. Look at the following commands:

pipo@pipo-desktop:~$ nc localhost 7634 | cut -c33-34
21
pipo@pipo-desktop:~$ nc localhost 7634 | cut -c58-59
23

With cut command and its -c option we can specify what characters we want from the string returned for netcat. Thus we can choose the characters that show the temperatures of each device. Once we have these values is time to write the appropriate lines in conky to display properly the temperatures.

Disco1: ${execi 300 nc localhost 7634 | cut -c33-34;}ºC
Disco2: ${execi 300 nc localhost 7634 | cut -c58-59;}ºC

With the execi variable of conky we can specify a command to be launched each number of seconds (300) specified. In this case we set 300 because hddtemp by default is configured to display the temperature of the disks every 5 minutes. If you want to display the temperatures of the disks in time intervals greater of less we must configure these parameters in Conky and hddtemp settings.

conky-temps-hdd

More information in UbuntuForums.

GD Star Rating
loading...
Share
  1. Jueves, 22 de enero de 2009 a las 06:06 | #1
    GD Star Rating
    loading...

    Great site.

  2. Martes, 27 de enero de 2009 a las 01:40 | #2
    GD Star Rating
    loading...

    Nice site you have!

  3. Viernes, 25 de septiembre de 2009 a las 21:41 | #3
    GD Star Rating
    loading...

    Buenisima y super util la explicacion, me sirvio perfecto tal y como lo describes, acaso sabras por que el acpi del procesador no me tira la temperatura?

  4. Sábado, 26 de septiembre de 2009 a las 17:46 | #4
    GD Star Rating
    loading...

    para lo de la temperatura del procesador te recomiendo utilizar lm_sensors. Cuando lo instalas hay una aplicación llamada sensors-detect que detecta que módulos son necesarios cargar para poder acceder a valores de temperaturas, RPM de ventiladores, etc. Después utilizando la variable hwmon de conky puedes acceder a dichos valores. Busca más por la red sobre esto que es muy útil ;)

  1. Sin trackbacks aún.