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