• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

嵌入Python解决MSR G2的特殊条件判定

2017-06-21 发表
  • 0关注
  • 0收藏 1196浏览
杨超 七段
粉丝:17人 关注:0人

某局点希望我司设备实现如下条件判定:

执行dis ospf peer X.X.X.X,如果邻居正常就对与OSPF无关的A接口执行undo shutdown,如果邻居不正常就对A接口执行shutdown,每3秒执行一次判定。这里如果用传统协议去做,很难实现。

无。

传统协议都是按照实际网络需求编写的,自由度上受到了限制,如果我们可以亲手去设计一个小协议,那么很多刁钻的问题都可以轻松解决。我司V7平台引入了嵌入式语言的做法大大提高了解决网络问题的自由度,这里我们用Python举例来实现上面的需求。

首先对应需求编写一份Python代码:

import time

import re

import comware

 

while True:

         results = comware.CLI('dis ospf peer 192.168.4.2', False).get_output()//设备自己执行dis ospf peer 192.168.4.2这条命令

         access = False

         p = re.compile('Full')//用关键字Full去匹配执行命令后显示出来的信息

         for result in results:

                   string = str(result)

                   if p.findall(string):

                            access = True

                            break

         if access:

                   comware.CLI('sys ;int g1/0/1 ;undo shutdown',True)//如果显示出来的信息中有Full,那么就执行sys intg1/0/1 undo shutdown

         else:

                   comware.CLI('sys ;int g1/0/1 ;shutdown',True)//如果显示出来的信息中没有Full,那么就执行sys int g1/0/1 shutdown

         time.sleep(3)///3表示程序每3S执行一次

将文件的名字改为1.py,然后将此文件传到设备的FLASH中去,让设备运行此文件:

从上图我们可以看到当执行Python文件后,代码已经生效,由于此时的邻居是full的,因此设备会不停的对G1/0/1口执行undo shutdown,如果此时我们将邻居DOWN掉:

   

我们可以看到当邻居DOWN掉后,根据代码的原意,设备对G1/0/1口执行了shutdown操作。

此时如果我们再将OSPF邻居变为full状态:

   

我们可以看到根据代码的原意,设备开启了G1/0/1接口,实现了我们的需求。

 

该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2019-06-11对此案例进行了修订
1 个评论
粉丝:10人 关注:7人

老哥,按照这个方法,老是无法匹配到正则啊,总是shutdown

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作