NEWS
Gelöst: Frage zum Adapter SystemInfo und CPU-Temperatur
-
Habe hier auf meinem Master (Linux Mint 19.3) den Adapter SystemInfo installiert.
In den Voreinstellungen des Adapters steht zur CPU-Temperaturtype=file source='/sys/class/thermal/thermal_zone0/temp'
Lese ich diese Datei aus steht in der 2. Zeile 27800 und nicht mehr. Daraus werde ich nicht schlau.
Gebe ich auf Kommandoebene /sys/class/thermal/thermal_zone0/temp ein, erscheint folgende Ausgabe:
27800 29800 58000
Hiermit kann ich noch weniger etwas anfangen.
Da ich das Paket lm-sensors installiert habe, erhalte ich bei Eingabe des Befehls sensors, folgende Ausgabe:
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +54.0°C (high = +84.0°C, crit = +100.0°C) Core 0: +54.0°C (high = +84.0°C, crit = +100.0°C) Core 1: +52.0°C (high = +84.0°C, crit = +100.0°C) Core 2: +47.0°C (high = +84.0°C, crit = +100.0°C) Core 3: +48.0°C (high = +84.0°C, crit = +100.0°C)
Nun habe ich im Systeminfo-Adapter einen neuen Datenpunkt angefügt mit den Einstellungen
type "exec" source "sensors"
Mit einem Cron alle zwei Minuten schreibt er die oben genannte Ausgabe des Sensors-Befehles in den Datenpunkt.
Beim Parsen mit einem RegEx-Filter in einzelne Datenpunkte, die ich weiterverwenden kann, bin ich jedoch am Ende mit meinem Latein
Wer erbarmt sich meiner und hilft mir etwas?
-
Habe zwischenzeitlich schon mehere Tipps aus dem Netz angewandt.
Jedoch waren bisher alle Versuche sehr unbefriedigendU.a. Folgenden:
/([0-9+.°])\w+/g
Dieser liefert mir jedoch ein Array in welchem allen gefundenen Zahlen aufgelistet werden. Aber schon mal ein Ergebnis
Einige andere Vorschläge aus dem Netz haben es auch nicht gebracht.
Vielleicht findet sich ja doch noch einer, der weiterhelfen kann?
Es reicht mir schon, wenn ich den Wert zwischen "Package id 0:" und dem darauffolgenden "°C" als Wert erhalte.
Ideal wäre natürlich, ein Array, in welches alle 5 Temperaturwerte
(Durchschnittstemp, TempCore0, TempCore1, TempCore2, TempCore3)
in einem Array liefern würde. -
@Berchemer Hast Du dir diesen Thread schon mal durchgelesen?
-
@Meister-Mopper
Danke für den Tipp. Werde ich mir mal anschauen -
Habe mich jetzt mal in dem Thread durchgelesen. All das mit den Skripten und so war soweit ok, für meinen Bedarf anzupassen, aber da ich den SystemInfo als Adapter sowieso eingebunden und laufen habe, habe ich mich für folgende Lösung ohne RegEx usw. entschieden:
Jeweils ein neuer Wert in den Einstellungen des Adapters für alle Temperaturwerte.
Bei mir sind das, wie oben zu sehen, insgesamt 4 Core-Einzelwerte und der Totale Temperaturwert über alle Kerne.Für die Gesamttemperatur:
Name: System.Sensors.NAS_NEU.cpu_Temperatur_core_all Type: exec Source: sensors | grep 'Package id 0:' | awk '{print $4}' | cut -c2-3 RegExp/Filter: LEER Convert: LEER Role/Type: value.temperature|°C WriteCommand: LEER Schedule: */5 * * * * *
Für jeden Einzel-Kern (hier Core 0):
Name: System.Sensors.NAS_NEU.cpu_Temperatur_core_0 Type: exec Source: sensors | grep 'Core 0:' | awk '{print $3}' | cut -c2-3 RegExp/Filter: LEER Convert: LEER Role/Type: value.temperature|°C WriteCommand: LEER Schedule: */5 * * * * *
usw.
Also noch einmal Danke für den Tipp!!!
-
Hallo @Berchemer
Ich finde deinen Ansatz gut und habe in systeminfo auch schon mal 3 Datenpunkte angelegt.
Aber ich bekomme keine Anzeige. In der Ausgabe steht nur °C.
Wenn ich aber in Putty den Befehl: sensors | grep 'Core 0:' | awk '{print $3}' | cut -c2-3
eingebe habe ich eine Temperatur.Kannst du mir helfen? Sicher habe ich einen Denkfehler.