源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python实现数通设备端口监控示例

  • 时间:2020-09-17 11:21 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python实现数通设备端口监控示例
最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况【】,虽然有现成网管监控工具监控设备状态,但做报表,有点不方便,特写了个小脚本。 注:测试运行于ubuntn,需安装snmpwalk工具, 目标数通设备,需做好相关snmp配置
[u]复制代码[/u] 代码如下:
#/usr/bin/python #coding:utf-8 import os,sys import re from pprint import pprint #甯歌鍘傚鏁伴�氳澶嘙IB鍊? 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':{    } } #绔彛鐘舵�佽浆鎹? 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,'#'))
运行结果
[u]复制代码[/u] 代码如下:
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    
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部