pxssh交换机自动刷限速模板

简介:

  写个跟交换机相关的python脚本,利用pxssh自动向交换机上刷限速模板。

  pxssh是从pexpect模块导入而来,pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。

 首先你的交换机需要支持ssh登陆。 

限速模板样式如下:

1
2
3
4
5
6
7
8
9
policy-map 5m
  class qos
   police rate 5 mbps
    conform-action transmit
   !
  !
  class class-default
  !
  end-policy-map

开始前先安装pexpect:

1
pip  install  pexpect

利用交换机ssh登陆的方式,执行脚本,脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
cat  router_addXianSu.py
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# This script is used to add router XianSu template for YanFaTest ASR9K.
from pexpect  import  pxssh   #导入模块
#import getpass
hostname  '10.10.10.1'
username =  'admin'
password =  'mypassword'
#hostname = raw_input("Please input your hostname:").strip()
#username = raw_input('Please input your username:').strip()
#password = getpass.getpass('Please input your password:').strip()
s = pxssh.pxssh()
s.login( hostname , username, password, login_timeout=5, auto_prompt_reset=False)  #注意这里的几个参数
print  '******* HOST %s success login!**********' % hostname
print  '*******router configure excute now******'
s.sendline( 'configure terminal' )
s.prompt()
print s.before
for  size  in  xrange(5,205,5):
     print  '*********add XianSu MuBan now***********' #添加从5m,10m,...,200m的限速模板
     cmd =  'policy-map %sm' %size
     print  '*****%s*****' %cmd
     s.sendline(cmd)
     s.sendline( 'class qos' )
     cmd =  'police rate %s mbps' %size
     print  '*********police rate %s mbps' %cmd
     s.sendline(cmd)
     s.sendline( 'conform-action transmit' )
     s.sendline( 'show configuration' )
     s.prompt()
     print s.before
     s.sendline( 'commit' )
     s.prompt()
     print s.before
     continue
s.sendline( 'exit' #交换机执行完后退出
s.close()  #退出,结束

以下是从开源社区里找的一个pxssh的例子代码,简单直观,供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python
import  pxssh
import  getpass
try :
     # 调用构造函数,创建一个 pxssh 类的对象.
     =  pxssh.pxssh()
     # 获得用户指定 ssh 主机域名.
     hostname  =  raw_input ( 'hostname: ' )
     # 获得用户指定 ssh 主机用户名.
     username  =  raw_input ( 'username: ' )
     # 获得用户指定 ssh 主机密码.
     password  =  getpass.getpass( 'password: ' )
     # 利用 pxssh 类的 login 方法进行 ssh 登录,原始 prompt 为'$' , '#'或'>'
     s.login (hostname, username, password, original_prompt = '[$#>]' )
     # 发送命令 'uptime'
     s.sendline ( 'uptime' )
     # 匹配 prompt
     s.prompt()
     # 将 prompt 前所有内容打印出,即命令 'uptime' 的执行结果.
     print  s.before
     # 发送命令 ' ls -l '
     s.sendline ( 'ls -l' )
     # 匹配 prompt
     s.prompt()
     # 将 prompt 前所有内容打印出,即命令 ' ls -l ' 的执行结果.
     print  s.before
     # 退出 ssh session
     s.logout()
except  pxssh.ExceptionPxssh, e:
     print  "pxssh failed on login."
     print  str (e)

相关链接:

https://github.com/pexpect/pexpect

http://www.oschina.net/question/12_7583?fromerr=1oyKdQ4w

另外python自带telnet的模块telnetlib,相关资料:

https://docs.python.org/2/library/telnetlib.html




      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1737501,如需转载请自行联系原作者






相关文章
|
3天前
|
网络性能优化 网络虚拟化 网络架构
配置接口限速示例(盒式交换机)
接口限速简介 接口限速对通过整个端口的全部报文流量速率进行限制,不对具体流量进行区分,可以实现给某个接口分配固定的带宽,控制方式单一,配置简单。 入方向与出方向的接口限速属于并列关系,用户可以根据需要同时配置,也可以单独配置。
|
7月前
|
Java API Nacos
巧用网关白名单实现接口免鉴权
分享技术,用心生活 场景描述:一般系统中提供的接口都是经过统一配置鉴权的,比如不登录不能访问。但是,一些接口是需要开放给客户用的,我称作open API。那么这时候你不能要求客户先登录你的接口再去调用吧。那么,这时候就可以通过网关白名单来实现免鉴权
巧用网关白名单实现接口免鉴权
|
9月前
|
Java Spring
SpringInitializr网络连接超时三种解决方案(配图文步骤)
SpringInitializr网络连接超时三种解决方案(配图文步骤)
357 0
|
Windows
网络基础 图解Windows系统下单网卡设置双IP访问不同网段的方法
网络基础 图解Windows系统下单网卡设置双IP访问不同网段的方法
712 0
|
人工智能 Linux
VOS 媒体转发开启后,如何计算各种编码所占用的带宽,以及如何修改服务器的时区
计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP 头 + RTP 头 + 有效载荷)× 每秒包数 =(112bit + 160bit + 64bit + 96bit + 有效载荷)× 每秒包数 =(112bit + 320bit + 有效载荷)× 每秒包数 =(432bit + 有效载荷)× 每秒包数 =(432bit × 每秒包数) + (有效载荷 × 每秒包数) =(432bit × 1000 / 打包周期) + 编码速率 =(432bit / 打包周期)Kbps + 编码速率 按照上面的计算公式: G
|
Android开发 iOS开发
活码二维码分流规则使用说明
MyCms 活码二维码工具简单来说就是一个固定的二维码入口,可以随时修改二维码背后显示的内容。
285 0
|
弹性计算 负载均衡
一文教你删除负载均衡实例的步骤
当您不再需要负载均衡服务时,可以将其删除,避免不必要的计费。删除负载均衡实例不会删除后端ECS,也不会影响后端ECS的运行。
799 0
|
编解码
【干货资料 】简单的交换机光模块故障排查步骤
交换机光模块故障排查步骤 1、检查光纤跳线是否与光模块相符:常见的多模光纤跳线有橙色、灰色和青绿色,而且一般印有62.5/125u或50/125u字样 ; 单模光纤跳线通常有黄色和蓝色等 , 一般印有9/125u或G652D等字样 2、自环检查:多模光模块发出的光为可见光,可以用肉眼观察(请勿直视发光口)光模块左边发光口为红色激光,有光表示正常工作。
1835 0
|
Serverless 应用服务中间件 网络安全
三分钟解决函数计算访问小程序 IP 白名单问题
背景 当你使用函数计算服务访问第三方服务的时候,第三方服务出于安全考虑,要求你设置一个白名单,比如:微信小程序等。但是函数计算服务的 IP 是动态且不可枚举的。为了能够让函数计算服务支持设置白名单,目前有两种常用的方式:ECS + EIP + Nginx 搭建代理和 NAT + EIP,第一个访问操作起来可能比较麻烦,需要准备一台 ECS,第二种方式操作简单,费用可能会高些。
9517 0
三分钟解决函数计算访问小程序 IP 白名单问题