获取树莓派当前状态和数据(温度、CPU、内存、硬盘)

本篇介绍如何使用Python编写一个能输出树莓派各种状态和数据的脚本,包括CPU温度、CPU占用情况、内存占用情况和硬盘占用。

建立脚本:

1
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():
     = os.popen( 'free' )
     = 0
     while  1 :
         = + 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():
     = os.popen( "df -h /" )
     = 0
     while 1 :
         = + 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))


然后执行:

1
2
chmod +x get.py
python get.py

预期输出结果如下:

1
2
3
4
5
6
7
8
9
10
CPU Temperature = 53.0
CPU Use = 13.5
 
RAM Total = 497.0 MB
RAM Used = 116.0 MB
RAM Free = 381.0 MB
 
DISK Total Space = 3.6GB
DISK Used Space = 1.8GB
DISK Used Percentage = 53%

你可能感兴趣的:(树梅派(Raspberry,Pi),python,linux)