Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Python监控CPU情况

Python监控CPU情况#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: leexide@126.com
#Python监控CPU情况
"""
1、实现原理:通过SNMP协议获取系统信息,再进行相应的计算和格式化,最后输出结果
2、特别注意:被监控的机器上需要支持snmp。yum install -y net-snmp*安装
"""#!/usr/bin/python
import os
def getAllitems(host, oid):
        sn1 = os.popen("snmpwalk -v 2c -c public " + host + " " + oid + "|grep Raw|grep Cpu|grep -v Kernel").read().split(" ")[:-1]
        return sn1
                                                               
def getDate(host):
        items = getAllitems(host, ".1.3.6.1.4.1.2021.11")
                                                               
        date = []
        rate = []
        cpu_total = 0
        #us = us+ni, sy = sy + irq + sirq
        for item in items:
                float_item = float(item.split(" ")[3])
                cpu_total += float_item
                if item == items[0]:
                        date.append(float(item.split(" ")[3]) + float(items[1].split(" ")[3]))
                elif item == item[2]:
                        date.append(float(item.split(" ")[3] + items[5].split(" ")[3] + items[6].split(" ")[3]))
                else:
                        date.append(float_item)
                                                               
        #calculate cpu usage percentage
        for item in date:
                rate.append((item/cpu_total)*100)
                                                               
        mean = ["%us","%ni","%sy","%id","%wa","%cpu_irq","%cpu_sIRQ"]
                                                               
        #calculate cpu usage percentage
        result = map(None,rate,mean)
        return result
                                                               
if __name__ == "__main__":
        hosts = ["192.168.10.1","192.168.10.2"]
        for host in hosts:
                print "==========" + host + "=========="
                result = getDate(host)
                print "Cpu(s)",
                #print result
                for i in range(5):
                        print " %.2f%s" % (result[i][0],result[i][1]),
                print
                print《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-09/107000.htm