État du matériel de requête Debian

Il y a longtemps, j'ai écrit un article sur l'interrogation de l'état matériel du moule à arbre, à l'aide d'un petit programme écrit en Python. La commande interne vcgencmd pour mesurer la température est utilisée, mais cette commande n'est pas disponible dans Debian. Il n'y a que la commande externe de lm_sensors dans Debian. Elle doit être installée : apt-get install lm_sensors -y, puis exécutez des capteurs pour obtenir l'information suivante:

Je pense que l'avant-dernière ligne devrait être la température du processeur, et ce qui suit est la température de chaque cœur. Tant que ces informations sont lues, la température du processeur peut être obtenue.

Seule la température du CPU ne peut pas être affichée normalement, et d'autres contenus peuvent être affichés normalement, donc les autres n'ont pas été modifiés, seule la partie d'affichage de la température du CPU a été modifiée.

Vous trouverez ci-dessous le code complet (y compris le contenu des versions précédentes) :

#!/usr/bin/env python
# coding=utf-8
import os

# Return CPU temperature as a character string
def getCPUtemperature():
    res = os.popen('sensors -A coretemp-isa-0000').readlines()
    return(res[1][16:22])
#上面readlines是缓存所有内容(列表),sensors后面的参数 -A是不显示adapter,后面是chip名称,此处为cpu.
#res[1][16:22]为res列表中第二项中的第16到22字符。该项内容为:Package id 0:  +41.0°C  (high = +105.0°C, crit = +

#下面两行是树莓派使用的代码
#    res = os.popen('vcgencmd measure_temp').readline()
#    return(res.replace("temp=","").replace("'C\n",""))



def getRAMinfo():
    p = os.popen('free')
    i = 0
    while 1:
        i = i + 1
        line = p.readline()
        if i==2:
            return(line.split()[1:4])

def getCPUuse():
    return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))
def getDiskSpace():
    p = os.popen("df -h /")
    i = 0
    while 1:
        i = i +1
        line = p.readline()
        if i==2:
            return(line.split()[1:5])


# CPU informatiom
CPU_temp = getCPUtemperature()
CPU_usage = getCPUuse()

# RAM information
# Output is in kb, here I convert it in Mb for readability
RAM_stats = getRAMinfo()
RAM_total = round(int(RAM_stats[0]) / 1000,1)
RAM_used = round(int(RAM_stats[1]) / 1000,1)
RAM_free = round(int(RAM_stats[2]) / 1000,1)

# Disk information
DISK_stats = getDiskSpace()
DISK_total = DISK_stats[0]
DISK_used = DISK_stats[1]
DISK_perc = DISK_stats[3]
if __name__ == '__main__':
 print('')
    print('CPU Temperature = '+CPU_temp+"℃")
    print('CPU Use = '+CPU_usage)
    print('')
    print('RAM Total = '+str(RAM_total)+' MB')
    print('RAM Used = '+str(RAM_used)+' MB')
    print('RAM Free = '+str(RAM_free)+' MB')
    print('')
    print('DISK Total Space = '+str(DISK_total)+'B')
    print('DISK Used Space = '+str(DISK_used)+'B')
    print('DISK Used Percentage = '+str(DISK_perc))


Je suppose que tu aimes

Origine blog.csdn.net/kim5659/article/details/132331890
conseillé
Classement