python中系统信息获取psutil使用

Linux就该这么学
[python] view plaincopyprint?

 

  1. #!/usr/bin/env python  
  2. #coding:utf-8  
  3. import psutil  
  4. import time  
  5. import sys  
  6. from optparse import OptionParser  
  7. parser = OptionParser()    
  8. parser.add_option("-t""--time", dest="time",  
  9.                   help="此参数可查看当前下载占的带宽,-t是测试时间", metavar="10")    
  10. parser.add_option("-d""--deamon",action="store_false", dest="deamon", default=True,    
  11.                   help="后台运行此脚本")   
  12.   
  13. def Sysinfo():  
  14.     Boot_Start = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(psutil.boot_time()))    
  15.     time.sleep(0.5)  
  16.     Cpu_usage = psutil.cpu_percent()  
  17.     RAM = int(psutil.virtual_memory().total/(1027*1024))  
  18.     RAM_percent = psutil.virtual_memory().percent  
  19.     Swap = int(psutil.swap_memory().total/(1027*1024))  
  20.     Swap_percent = psutil.swap_memory().percent  
  21.     Net_sent = psutil.net_io_counters().bytes_sent  
  22.     Net_recv = psutil.net_io_counters().bytes_recv  
  23.     Net_spkg = psutil.net_io_counters().packets_sent  
  24.     Net_rpkg = psutil.net_io_counters().packets_recv  
  25.     BFH = r'%'  
  26.     print " \033[1;32m开机时间:%s\033[1;m"  % Boot_Start  
  27.     print " \033[1;32m当前CPU使用率:%s%s\033[1;m" % (Cpu_usage,BFH)  
  28.     print " \033[1;32m物理内存:%dM\t使用率:%s%s\033[1;m" % (RAM,RAM_percent,BFH)  
  29.     print "\033[1;32mSwap内存:%dM\t使用率:%s%s\033[1;m" % (Swap,Swap_percent,BFH)  
  30.     print " \033[1;32m发送:%d Byte\t发送包数:%d个\033[1;m" % (Net_sent,Net_spkg)  
  31.     print " \033[1;32m接收:%d Byte\t接收包数:%d个\033[1;m" % (Net_recv,Net_rpkg)  
  32.   
  33.     for i in psutil.disk_partitions():  
  34.         print " \033[1;32m盘符: %s 挂载点: %s 使用率: %s%s\033[1;m" % (i[0],i[1],psutil.disk_usage(i[1])[3],BFH)  
  35.   
  36.   
  37. def Net_io(s):  
  38.     x = 0  
  39.     sum = 0  
  40.     while True:  
  41.         if x >= s:  
  42.             break  
  43.         r1 = psutil.net_io_counters().bytes_recv  
  44.         time.sleep(1)  
  45.         r2 = psutil.net_io_counters().bytes_recv  
  46.         y = r2 - r1  
  47.         print "%.2f Kb/s" % (y / 1024.0)  
  48.         sum += y  
  49.         x += 1  
  50.     result = sum / x  
  51.     print "\033[1;32m%s秒内平均速度:%.2f Kb/s \033[1;m"  % (x,result / 1024.0)  
  52. if __name__ == "__main__":  
  53.     (options, args) = parser.parse_args()    
  54.     if options.time:  
  55.         Net_io(int(options.time))  
  56.     else:  
  57.         Sysinfo()  

运行结果:

 开机时间:2015-04-24 08:39:45
 当前CPU使用率:1.0%
 物理内存:985M    使用率:26.5%
 Swap内存:2073M    使用率:0.0%
 发送:140263274 Byte    发送包数:213610个
 接收:1522552624 Byte    接收包数:25313640个
 盘符: /dev/mapper/centos-root 挂载点: / 使用率: 32.8
 盘符: /dev/xvda1 挂载点: /boot 使用率: 19.2%

systeminfo.py -t 10使用:

1.18 Kb/s
0.98 Kb/s
1.11 Kb/s
0.94 Kb/s
0.89 Kb/s
0.92 Kb/s
1.29 Kb/s
1.24 Kb/s
1.21 Kb/s
0.73 Kb/s
10秒内平均速度:1.05 Kb/s

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注