Python实现数通设备端口使用情况监控实例


Posted in Python onJuly 15, 2015

本文实例讲述了Python实现数通设备端口使用情况监控的方法。分享给大家供大家参考。具体如下:

最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况【】,虽然有现成网管监控工具监控设备状态,但做报表,有点不方便,特写了个小脚本。上传的,为半成品可用程序

注:测试运行于ubuntn,需安装snmpwalk工具,

目标数通设备,需做好相关snmp配置

#/usr/bin/python
#coding:utf-8
import os,sys
import re
from pprint import pprint
#甯歌???瀹舵?伴??璁惧?MIB??
MIB = {
 'public':{
  'ports':{
   'string':'.1.3.6.1.2.1.2.2.1.2',
   'status':'.1.3.6.1.2.1.2.2.1.8', #2 down
  }
 },
 'huawei':{
 },
 'cisco':{
 }
}
#绔??g?舵??杞???
def portStatus(_s):
 if int(_s)==2:
  return 'down'
 elif int(_s)==1:
  return 'up'
 else:
  return 'none'
#?ц?绯荤??戒护snmpwalk璋??
def snmpwalk(host,publicKey,iso):
 return [i.strip() for i in os.popen('/usr/bin/snmpwalk -c %s -v 2c %s %s'%(publicKey,host,iso)).readlines()]
def getPorts(_ip,_public,option):
 if option == 'ports':
  postsString = (j.split('=')[1].split(':')[1].replace('"','').strip() for j in snmpwalk(_ip,_public,MIB['public']['ports']['string']))
  postsStatus = (int(j.split('=')[1].split(':')[1].strip()) for j in snmpwalk(_ip,_public,MIB['public']['ports']['status']))
  return zip(postsString,postsStatus)
 else:
  print('on this commmnad')
publicKey = 'hi' #sunmp public key
HOSTS={
 '10.221.98.2':{'type':'switch','origin':'quidway','public':publicKey},
 '10.221.98.3':{'type':'switch','origin':'quidway','public':publicKey},
 '10.221.97.108':{'type':'firewall','origin':'h3c','public':publicKey},
 '10.231.98.233':{'type':'switch','origin':'cisco','public':publicKey},
}
if __name__ == '__main__':
 for i in HOSTS.keys():
  for host,status in getPorts(i,HOSTS[i]['public'],'ports'):
   print("%s\t%s\t%s"%(i,host.ljust(30),portStatus(status).ljust(20)))
  print(''.ljust(50,'#'))

运行结果:

root@ubuntn12:/tmp# python snmpwalk.py
10.221.98.2   InLoopBack0           up        
10.221.98.2   NULL0              up        
10.221.98.2   GigabitEthernet0/0/0      down       
10.221.98.2   Aux0/0/1            down       
10.221.98.2   Vlanif100            up        
10.221.98.2   Eth-Trunk1           down       
10.221.98.2   Eth-Trunk1.32          down       
10.221.98.2   Eth-Trunk1.50          down       
10.221.98.2   Eth-Trunk1.60          down       
10.221.98.2   Eth-Trunk1.70          down       
10.221.98.2   Eth-Trunk1.80          down       
10.221.98.2   Eth-Trunk1.100         down       
10.221.98.2   Eth-Trunk1.110         down  
....... 

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python的__builtin__模块中的一些要点知识
May 02 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
python+splinter自动刷新抢票功能
Sep 25 Python
python使用装饰器作日志处理的方法
Jul 11 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
Python简易版停车管理系统
Aug 12 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
Python代码需要缩进吗
Jul 01 Python
python wsgiref源码解析
Feb 06 Python
python实现过滤敏感词
May 08 Python
Python实现快速多线程ping的方法
Jul 15 #Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 #Python
Python的Django框架中if标签的相关使用
Jul 15 #Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 #Python
python实现判断数组是否包含指定元素的方法
Jul 15 #Python
python获取元素在数组中索引号的方法
Jul 15 #Python
Django框架中方法的访问和查找
Jul 15 #Python
You might like
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Nuxt页面级缓存的实现
2020/03/09 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
python字典快速保存于读取的方法
2018/03/23 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
python随机模块random使用方法详解
2020/02/14 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
大学生的网上创业计划书
2013/12/31 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书