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 调用Java实例详解
Jun 02 Python
python写一个md5解密器示例
Feb 23 Python
详解Python中的动态属性和特性
Apr 07 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
python实现windows壁纸定期更换功能
Jan 21 Python
详解django2中关于时间处理策略
Mar 06 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
opencv3/C++图像像素操作详解
Dec 10 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 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
php中一个有意思的日期逻辑处理
2012/03/25 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
如何使用Javascript中的this关键字
2020/05/28 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
Python输入二维数组方法
2018/04/13 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
python Django的web开发实例(入门)
2019/07/31 Python
如何基于python测量代码运行时间
2019/12/25 Python
python之语音识别speech模块
2020/09/09 Python
python中PyQuery库用法分享
2021/01/15 Python
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
秦兵马俑教学反思
2014/02/07 职场文书
推普标语口号大全
2015/12/26 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书