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 相关文章推荐
wxPython窗口中文乱码解决方法
Oct 11 Python
Python实现统计单词出现的个数
May 28 Python
Python配置mysql的教程(推荐)
Oct 13 Python
python3 flask实现文件上传功能
Mar 20 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python读写配置文件操作示例
Jul 03 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
python定义类的简单用法
Jul 24 Python
python如何将图片转换素描画
Sep 08 Python
python3 sqlite3限制条件查询的操作
Apr 07 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
一个程序下载的管理程序(一)
2006/10/09 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
Vue.use源码学习小结
2018/06/20 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
python定时器使用示例分享
2014/02/16 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python实现扫雷游戏
2020/03/03 Python
python装饰器代码深入讲解
2021/03/01 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
计算机专业应届毕业生自荐信
2013/09/26 职场文书
韩语专业本科生求职信
2013/10/01 职场文书
销售经理工作职责
2014/02/03 职场文书
亲子拓展活动方案
2014/02/20 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
毕业生见习报告总结
2014/11/08 职场文书
工作失职自我检讨书
2015/05/05 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Consul在linux环境的集群部署
2022/04/08 Servers