树莓派:获取温度、CPU、内存、硬盘使用情况
阅读 120 作者 小林丶子

建立脚本:

 

sudo nano get.py


贴入如下代码:

import os

# Return CPU temperature as a character string 
def getCPUtemperature():
res = os.popen('vcgencmd measure_temp').readline()
return(res.replace("temp=","").replace("'C\n",""))

# Return RAM information (unit=kb) in a list 
# Index 0: total RAM 
# Index 1: used RAM 
# Index 2: free RAM 
def getRAMinfo():
p = os.popen('free')
i = 0
while 1:
i = i + 1
line = p.readline()
if i==2:
return(line.split()[1:4])

# Return % of CPU used by user as a character string 
def getCPUuse():
return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip()))

# Return information about disk space as a list (unit included) 
# Index 0: total disk space 
# Index 1: used disk space 
# Index 2: remaining disk space 
# Index 3: percentage of disk used 
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))

给权限然后执行即可:

chmod +x get.py
python get.py
返回:

root@raspberrypi:/home/pi# python get.py

CPU Temperature = 36.5
CPU Use = 0.1

RAM Total = 949.0 MB
RAM Used = 170.0 MB
RAM Free = 147.0 MB

DISK Total Space = 29GB
DISK Used Space = 5.0GB
DISK Used Percentage = 19%

[编辑于 2019/10/12 17:00]