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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
Python实现给qq邮箱发送邮件的方法
May 28 Python
深入理解Python中的*重复运算符
Oct 28 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 Python
Python实现随机漫步功能
Jul 09 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
Django model update的多种用法介绍
Mar 28 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
python中if嵌套命令实例讲解
Feb 25 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 memcache扩展的三种安装方法
2009/04/26 PHP
php入门教程 精简版
2009/12/13 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
javascript一点特殊用法
2008/05/28 Javascript
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
详解python之heapq模块及排序操作
2019/04/04 Python
pytorch 预训练层的使用方法
2019/08/20 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
工程师岗位职责
2013/11/08 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
团日活动总结书
2014/05/08 职场文书
公司酒会致辞
2015/07/30 职场文书
创业计划书之服装
2019/10/07 职场文书
对讲机知识
2022/04/07 无线电
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server