您的位置:首页 > 编程语言 > Python开发

【Python运维脚本】Python监控网卡流量

2014-09-19 00:00 766 查看
#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com #Python监控网卡流量 """ 1、实现原理:通过SNMP协议获取系统信息,再进行相应的计算和格式化,最后输出结果 2、特别注意:被监控的机器上需要支持snmp。yum install -y net-snmp*安装 """ #!/usr/bin/python import re import os #get SNMP-MIB2 of the devices def getAllitems(host,oid): sn1 = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid).read().split('\n')[:-1] return sn1 #get network device def getDevices(host): device_mib = getAllitems(host,'RFC1213-MIB::ifDescr') device_list = [] for item in device_mib: if re.search('eth',item): device_list.append(item.split(':')[3].strip()) return device_list #get network date def getDate(host,oid): date_mib = getAllitems(host,oid)[1:] date = [] for item in date_mib: byte = float(item.split(':')[3].strip()) date.append(str(round(byte/1024,2)) + ' KB') return date

if __name__ == '__main__': hosts = ['192.168.10.1','192.168.10.2'] for host in hosts: device_list = getDevices(host) inside = getDate(host,'IF-MIB::ifInOctets') outside = getDate(host,'IF-MIB::ifOutOctets') print '==========' + host + '=========='
for i in range(len(inside)): print '%s : RX: %-15s TX: %s ' % (device_list[i], inside[i], outside[i]) print
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: