Debian consulta el estado del hardware

Hace mucho tiempo, escribí un artículo sobre cómo consultar el estado del hardware del pastel de molde de árbol, usando un pequeño programa escrito en Python. Se utiliza el comando interno vcgencmd para medir la temperatura, pero este comando no está disponible en Debian. Sólo existe el comando externo de lm_sensors en Debian. Debe instalarse: apt-get install lm_sensors -y, y luego ejecutar sensores para obtener la siguiente información:

Creo que la antepenúltima línea debería ser la temperatura de la CPU, y la siguiente es la temperatura de cada núcleo. Siempre que se lea esta información, se puede obtener la temperatura de la CPU.

Solo la temperatura de la CPU no se puede mostrar normalmente y otros contenidos se pueden mostrar normalmente, por lo que los demás no se han cambiado, solo se ha cambiado la parte de visualización de la temperatura de la CPU.

A continuación se muestra el código completo (incluido el contenido de versiones anteriores):

#!/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))


Supongo que te gusta

Origin blog.csdn.net/kim5659/article/details/132331890
Recomendado
Clasificación