NEWS
[Gelöst] CPU Temperatur von Proxmox VM
-
@Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:
@marcuskl Ich habe meinen vorigen Beitrag noch ergänzt. Vielleicht probierst du auch:
root@proxmox:~# sensors | grep 'temp1:' temp1: +51.0°C (crit = +100.0°C) root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' +52.0°C root@proxmox:~# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3 51 root@proxmox:~#
root@pve:/usr/local/bin# sensors | grep 'temp1:' temp1: +48.0°C (crit = +100.0°C) temp1: N/A root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}' +49.0°C N/A root@pve:/usr/local/bin# sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3 49 /A
So bei mir
-
@marcuskl sagte in CPU Temperatur von Proxmox VM:
curl -g
Ich glaube ich habe den Fehler gefunden! In der 'curl'-Zeile ist eine Klammer an der falschen Stelle. Versuch mal folgenden Code:
#!/bin/bash #ioBroker-Datenpunkt DP=info.0.sysinfo.cpu.temperature.main #ioBroker-IP:Port IPP=192.168.0.195:8081 #Systemtemperatur abfragen SQL=$(sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3) #an ioBroker senden curl http://${IPP}/set/${DP}?value=${SQL}
Interessant, dass es bei mir trotzdem funktioniert. Bei Aufruf der Bash-Datei erhalte ich:
{"id":"info.0.sysinfo.cpu.temperature.main","value":51,"val":51}
-
@marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.
-
@marcuskl sagte in CPU Temperatur von Proxmox VM:
sensors | grep 'temp1:' | awk '{print $2}' | cut -c2-3
wenn du 2 zeilen mit temp1 hast ginge auchsensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3
-
@Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:
@marcuskl Ach ja, du hast ja zwei Zeilen mit "temp1:". Du kannst statt 'temp1:' auch mal 'Package id 0:' versuchen, dann solltest du nur eine Zeile erhalten.
root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh {"id":"info.0.sysinfo.cpu.temperature.main","valuroot@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh
Erstmal mit der Verbesserung funktioniert es auch ohne -g
Aber es ändert jz den wert auf "d" wenn ich package id 0 nehme
-
@marcuskl Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.
-
@Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:
@marcuskl Dann nimmt er "d " von "package id 0". Versuch es mit dem Befehl von @liv-in-sky oder mit '{print $4}' statt '{print $2}'.
root@pve:/usr/local/bin# bash cpu_temp_send_iobroker.sh {"id":"info.0.sysinfo.cpu.temperature.main","value":48,"val":48}root@pve:/usr/local/bin#
Ja funktioniert.
Super danke euch!!! -
Für alle nochmal das verbesserte Skript:
#!/bin/bash #ioBroker-Datenpunkt DP=info.0.sysinfo.cpu.temperature.main #ioBroker-IP:Port IPP=192.168.0.195:8087 #Systemtemperatur abfragen SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) #an ioBroker senden sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL}
-
@marcuskl Freut mich! Dann markiere den Thread bitte noch als "gelöst".
Und noch was: Du hast den ersten 'curl'-Befehl vergessen. Also direkt vor 'sleep 10'.
-
Der Cronjob will aber nicht laufen
Habe einfach bei
Crontab -e
*/1 * * * * /usr/local/bin/cpu_temp_send_iobroker.sh
Eingefügt, aber macht nichts.
Vergesse ich irgentwas ? -
So jetzt aber.
Wie ich vorgegangen bin:
- Unter Verzeichnis
cd /usr/local/bin/
gegangen
- Mit Nano Skript angelegt
nano cpu_temp_send_iobroker.sh
Im Editor folgenden Skript eingefügt:
#!/bin/bash #ioBroker-Datenpunkt DP=info.0.sysinfo.cpu.temperature.main #ioBroker-IP:Port IPP=192.168.0.195:8087 #Systemtemperatur abfragen SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) #an ioBroker senden curl http://${IPP}/set/${DP}?value={$SQL} #Sendet alle 10 Sekunden an iobroker sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL} sleep 10 SQL=$(sensors | grep 'temp1:' | awk 'NR==1 {print $2}' | cut -c2-3) curl http://${IPP}/set/${DP}?value=${SQL}
Strg+X gespeichert.
(Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)Datenpunkt vom Info Adapter zum Schreiben freigegeben
- Getestet mit:
bash /usr/local/bin/cpu_temp_send_iobroker.sh
(Ich musste vorher noch Curl installieren)
- Crontab angelegt:
crontab -e
Ganz unten Zeile eingefügt:
* * * * * bash /usr/local/bin/cpu_temp_send_iobroker.sh
Fertig, Danke an alle für sie Hilfe !!!
-
@Dr-Bakterius sagte in CPU Temperatur von Proxmox VM:
@Homoran Von dir hätte ich schon erwartet zu wissen was der curl-Befehl macht.
So kann man sich täuschen.
Auch wenn man es nicht merkt (Danke dafür!) , ich bin der Quoten-Noob im Team -
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Strg+X gespeichert.
(Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)du hast noch das ausführbar machen für das script vergessen
chmod +x cpu_temp_send_iobroker.sh
-
@liv-in-sky sagte in [Gelöst] CPU Temperatur von Proxmox VM:
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Strg+X gespeichert.
(Achtung!!! Simple API Adapter erforderlich und dann den Port vom Adapter eintragen)du hast noch das ausführbar machen für das script vergessen
chmod +x cpu_temp_send_iobroker.sh
Das habe ich aber nicht gemacht.
Wofür ist das ? -
@marcuskl damit wird eine Datei unter Linux "ausführbar"
wenn Du in einem Linux-Verzeichnis den Befehlels
eingibst, dann bekommst Du eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -la
eingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.
Google mal nach "chmod" oder "Linux chmod"
-
@BBTown sagte in [Gelöst] CPU Temperatur von Proxmox VM:
@marcuskl damit wird eine Datei unter Linux "ausführbar"
wenn Du in einem Linux-Verzeichnis den Befehlels
eingibst, dann bekommst Due eine Liste der Dateien und Unterverzeichnisse angezeigt
Wenn Du den Befehl allerdings als
ls -la
eingibst, dann werden dir auch die "Berechtigungen" (lesen, schreiben, ausführen) angezeigt.
Google mal nach "chmod" oder "Linux chmod"
Kann des sein, dass deswegen nicht gleich der Cronjob funktioniert hat ?
Ich habe jz im Cron "Bash" mit in den Cron geschrieben, dann ging es erst. -
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Kann des sein, dass deswegen nicht gleich der Cronjob funktioniert hat ?
Ich habe jz im Cron "Bash" mit in den Cron geschrieben, dann ging es erst. -
@BBTown sagte in [Gelöst] CPU Temperatur von Proxmox VM:
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Kann des sein, dass deswegen nicht gleich der Cronjob funktioniert hat ?
Ich habe jz im Cron "Bash" mit in den Cron geschrieben, dann ging es erst.Ok danke, dass wusste ich nicht.
-
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Ok danke, dass wusste ich nicht.
Das ist ja auch nicht schlimm, dafür ist ja ein Forum da
-
@marcuskl sagte in [Gelöst] CPU Temperatur von Proxmox VM:
Kann des sein, dass deswegen nicht gleich der Cronjob funktioniert hat ?
Ich habe jz im Cron "Bash" mit in den Cron geschrieben, dann ging es erst.Richtig, entweder das Skript mit Bash aufrufen oder direkt ausführbar machen. Führt beides ans Ziel.