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正则表达式的使用范例详解
Aug 08 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
python编写爬虫小程序
May 14 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
python实现一组典型数据格式转换
Dec 15 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
python小白学习包管理器pip安装
Jun 09 Python
python新手学习可变和不可变对象
Jun 11 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 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 验证登陆类分享
2015/03/13 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
图片翻转效果具体实现代码
2014/01/09 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python 切换root 执行命令的方法
2019/01/19 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
创先争优制度
2014/01/21 职场文书
好人好事事迹材料
2014/02/12 职场文书
大二学习计划书范文
2014/04/27 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python