标签:
以下是关于python来获取服务器每颗CPU使用率的使用脚本。
#!/usr/bin/env python # -*- coding: utf-8 -*- import re,time def _read_cpu_usage(): """Read the current system cpu usage from /proc/stat""" statfile = "/proc/stat" cpulist = [] try: f = open(statfile, ‘r‘) lines = f.readlines() except: print "ERROR: Can not open %s,The system cannot continue to run" % (statfile) return [] for line in lines: tmplist = line.split() if len(tmplist) < 5: continue for b in tmplist: m = re.search(r‘cpu\d+‘,b) if m is not None: cpulist.append(tmplist) f.close() return cpulist def get_cpu_usage(): cpuusage = {} cpustart = {} cpuend = {} linestart = _read_cpu_usage() if not linestart: return 0 for cpustr in linestart: usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4]) usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3]) cpustart[cpustr[0]] = str(usni)+":"+str(usn) sleep = 2 time.sleep(sleep) lineend = _read_cpu_usage() if not lineend: return 0 for cpustr in lineend: usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4]) usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3]) cpuend[cpustr[0]] = str(usni)+":"+str(usn) for line in cpustart: start = cpustart[line].split(‘:‘) usni1,usn1 = float(start[0]),float(start[1]) end = cpuend[line].split(‘:‘) usni2,usn2 = float(end[0]),float(end[1]) cpuper=(usn2-usn1)/(usni2-usni1) cpuusage[line] = int(100*cpuper) return cpuusage if __name__ == ‘__main__‘: a = get_cpu_usage() print a
标签:
原文地址:http://www.cnblogs.com/aslongas/p/5871102.html