Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Sonntag
13
Mai 2018

Temperaturen unter Linux auslesen

Die Überwachung von Temperaturen insbesondere in Servern kann helfen frühzeitig eine Überhitzung zu erkennen und so Schäden vorzubeugen.

Auf vielen System kann man Temperatursensoren auslesen indem man im Ordner /sys/class/thermal nach Unterordnern sucht die mit thermal_zone beginnen. Normalerweise sind die Ordner fortlaufend nummeriert. In diesen Ordnern befindet sich eine Datei mit dem namen temp in dem die Temperatur für diesen Sensor in tausendstel Grad zu finden ist.

Bash
cat /sys/class/thermal/thermal_zone*/temp

Ausgabe:

27800
29800
42000

Um den Wert eines bestimmten Sensors als Kommazahl zu bekommen, kann man z.B. folgendes machen:

Bash
cat /sys/devices/virtual/thermal/thermal_zone0/temp | awk '{print $1/1000}'

Ausgabe

27.8

Raspian auf Raspberry Pi

Auf dem Raspberry kann man sich, sofern man Raspian benutzt, die Temperatur mit dem Befehl vcgencmd anzeigen lassen.

Bash
vcgencmd measure_temp

Ergibt eine Ausgabe von

temp=64.5'C

Möchte man nur die Temperatur als numerischen Wert kann man so den Rest wegschneiden:

Bash
/opt/vc/bin/vcgencmd measure_temp | cut -d '=' -f2 | sed 's/..$//'

Auf MQTT Server publizieren

Man kann diese Temperaturwerte jetzt z.B. auf einem MQTT Server publizieren und ggf. eine Hausautomationssoftware darauf reagieren lassen.

Bash
/opt/vc/bin/vcgencmd measure_temp | cut -d '=' -f2 | sed 's/..$//' | /usr/bin/mosquitto_pub -h mqtt -t home/groundfloor/office/sensor/temperature/myserver/cpu -l