设为首页 加入收藏

TOP

Python监控CPU情况
2014-11-23 20:27:55 来源: 作者: 【 】 浏览:24
Tags: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('\n')[:-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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux系统下动态库的生成 下一篇Python监控系统负载

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: