Mesure de la température CPU
Pour obtenir la température des composants de la carte mère, plusieurs options sont possibles :
Avec lm_sensors
dnf install lm_sensors
sensors
La commande sensors va afficher quelques chose comme ceci :
k10temp-pci-00c3 Adapter: PCI adapter temp1: +29.0°C (high = +70.0°C) (crit = +90.0°C, hyst = +88.0°C) nouveau-pci-0100 Adapter: PCI adapter temp1: +75.0°C (high = +95.0°C, hyst = +3.0°C) (crit = +125.0°C, hyst = +2.0°C) (emerg = +135.0°C, hyst = +5.0°C) atk0110-acpi-0 Adapter: ACPI interface Vcore Voltage: 1.09 V (min = +0.85 V, max = +1.70 V) +3.3 Voltage: 3.51 V (min = +2.97 V, max = +3.63 V) +5 Voltage: 5.08 V (min = +4.50 V, max = +5.50 V) +12 Voltage: 12.58 V (min = +10.20 V, max = +13.80 V) CPU FAN Speed: 3245 RPM (min = 600 RPM, max = 7200 RPM) CHASSIS FAN Speed: 0 RPM (min = 600 RPM, max = 7200 RPM) CHASSIS FAN 2 Speed: 0 RPM (min = 600 RPM, max = 7200 RPM) CPU Temperature: +38.0°C (high = +60.0°C, crit = +95.0°C) MB Temperature: +39.0°C (high = +45.0°C, crit = +75.0°C)
Ou en python , avec la bibliothèque PySensors qui s’installe ainsi :
pip install PySensors En utilisation basique :
#!/usr/bin/python3 #pip install PySensors import sensors sensors.init() try: for chip in sensors.iter_detected_chips(): print ('%s at %s' % (chip, chip.adapter_name)) for feature in chip: print (' %s: %.2f' % (feature.label, feature.get_value())) finally: sensors.cleanup()
Ce script fournira ce type d’informations :
k10temp-pci-00c3 at PCI adapter temp1: 28.50 nouveau-pci-0100 at PCI adapter temp1: 75.00 atk0110-acpi-0 at ACPI interface Vcore Voltage: 1.09 +3.3 Voltage: 3.51 +5 Voltage: 5.08 +12 Voltage: 12.58 CPU FAN Speed: 3229.00 CHASSIS FAN Speed: 0.00 CHASSIS FAN 2 Speed: 0.00 CPU Temperature: 38.00 MB Temperature: 39.00
Exemple, ne fournissant qu’une température moyenne :
Parce que selon la langue installée sur votre OS, vous aurez en sortie des “temp” ou des “therm”, et que la bibliohtèque fournira une température par “core”, voici un petit code qui se contente d’afficher une valeur moyenne :
#!/usr/bin/python3 #pip install PySensors import sensors sensors.init() v=0.00 n=0 try: for chip in sensors.iter_detected_chips(): for feature in chip: if (("temp" in str(feature.label).lower()) or ("therm" in str(feature.label).lower()) or ("core" in str(feature.label).lower()) or ("cpu" in str(feature.label).lower())): if not ("speed" in str(feature.label).lower()) and not ("volt" in str(feature.label).lower()): n=n+1 v=v+feature.get_value() finally: sensors.cleanup() if (n>0): print("%s : %.2f" % ("Temp moyenne",v/n)) print("%s : %d" % ("Nombre de valeurs",n))
Ce dernier affiche :
Temp moyenne : 38.00 Nombre de valeurs : 1