Debian查询硬件状态

很早以前写过一个查询树霉派硬件状态的文章,用是Python写的一个小程序。里面用到了vcgencmd这个测温度的内部命令,但这个命令在debian里面没有,debian里只有lm_sensors的外部命令,需要安装:apt-get install lm_sensors -y,然后运行sensors就可以得到下面这些信息:

我想倒数第三行应该就是cpu温度,再下面是各个核的温度。只要把这个信息读出来,就可以得到cpu温度了。

只有cpu温度不能正常显示,其他内容可以正常显示,所以其他没改,只改了cpu温度显示部分。

下面是全部代码(包括之前版本内容):

python 复制代码
#!/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))
相关推荐
Cosolar36 分钟前
LlamaIndex索引类型全解析:原理与实战指南
运维·服务器
方便面不加香菜3 小时前
Linux--基础IO(一)
linux·运维·服务器
鼎讯信通5 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..6 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
跨境数据猎手6 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA7 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter6257 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
会Tk矩阵群控的小木7 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
赵渝强老师8 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
佛山个人技术开发8 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode