Holen Sie sich CPU-Temps vom Terminal mit Cygwin?

1

Ich verwende Cygwin 64 unter Windows 8 und möchte die Bash-Schnittstelle verwenden, um die CPU-Temperaturen (4 Kerne sowie GPU-Temps) zu ermitteln. Ist das möglich? Ich benutze die Temperaturüberwachungsanwendung und habe diese Schnittstelle über Rainmaker, aber ich möchte, dass sie in Intervallen meiner Auswahl in eine Textdatei gedruckt werden, da ich einen Teil meines Codes nutzen und sehen möchte, wie er den Computer aufheizt.

Irgendwelche Ideen?

drjrm3
quelle
Welche Temperaturüberwachungsanwendung verwenden Sie?
VL-80
Speedfan. Entschuldigung, auf meinem alten Computer hieß es buchstäblich "Temperaturüberwachung"!
drjrm3
In Ordung. Schau dir meine Antwort an.
VL-80
sieht anständig aus - hatte noch keine Zeit, es auszuprobieren, aber wenn ich es tue, werde ich Sie wissen lassen, wie es funktioniert, und es als Antwort auflisten, wenn ich es bestätige. Vielen Dank.
Drjrm3

Antworten:

1

Speed ​​Fan verfügt über eine Protokollierungsoption. Aktivieren Sie es in der Konfiguration. Sie finden Protokolldateien in dem Verzeichnis, in dem Speed ​​Fan installiert wurde. In meinem Fall war es dasProgram Files\SpeedFan\SFLog(date).csv

Ich habe UnixTools für Windows installiert . Wenn ich das richtig verstehe, Cygwinhat es die gleichen Fähigkeiten wie UnixToolsund gibt Ihnen die Möglichkeit, Unix-ähnliche Befehle in Windows zu verwenden.

Jetzt haben wir eine Protokolldatei (die alle 3 Sekunden aktualisiert wird) mit allen gewünschten Daten. Wir können es verwenden, um die letzten Werte von SpeedFan mit folgendem Skript zu erhalten:

for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)

tail -n 1 "C:\Program Files\SpeedFan\SFLog%mydate%.csv" | gawk {print$2}

Zuerst setzen wir die Variable mydateals aktuelles Datum, das im Stil des Speed ​​Fan-Protokolls formatiert ist. Wir werden es brauchen, um die neueste Logdatei zu finden.

Danach verwenden wir den Befehl tail with option -n 1, um die letzte Zeile der Datei (die neuesten Daten) abzurufen.

Und wir liefern diese Zeile an den Befehl gawk mit der Option {print$2}, die zweite "Spalte" der Zeile abzurufen, da die erste "Spalte" der Zeitstempel ist.

Das Skript gibt also den neuesten Wert der zweiten Spalte der Protokolldatei aus. Wenn Sie mehr als nur einen Wert benötigen, erstellen Sie ein anderes Skript, das die dritte Spalte anfordert, indem Sie die Option {print$3}auf geben gawk.

Angenommen, die SpeedFan-Protokolldatei hat folgendes Format:

Timestamp  CPU1_temp  CPU2_temp  MotherBoard_temp  CPUFan_RPM

Sie können 4 Skripte haben - jedes erhält einen der Werte (verwenden Sie gawkdie {print$X}Option, um zu bestimmen, welche Spalte gelesen werden soll).

Jetzt können Sie diese Skripte von anderen Programmen aus aufrufen, wenn sie Temperaturwerte von SpeedFan benötigen.

VL-80
quelle
meine logdatei druckt nur die zeiten. Auf der Registerkarte "Protokoll" befindet sich eine Notiz mit der Aufschrift "Denken Sie daran, welche Messwerte Sie protokollieren möchten". Wo wähle ich diese Messwerte aus?
drjrm3
1
Gehen Sie zur Registerkarte Temperaturen (erste). Sie sehen eine Liste der Sensoren. Klicken Sie auf eins und am unteren Rand des Fensters sehen Sie das Kontrollkästchen "Gespeichert". Aktivieren Sie dieses Kontrollkästchen, wenn Daten von diesen Sensoren protokolliert werden sollen. Dasselbe gilt für Lüfter, Spannungen usw.
VL-80