开发者社区> 技术小胖子> 正文

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,如需转载请自行联系原作者






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
媒体转发开启后,VOS 怎样计算各种编码所占用的带宽
计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP 头 + RTP 头 + 有效载荷)× 每秒包数 =(112bit + 160bit + 64bit + 96bit + 有效载荷)× 每秒包数 =(112bit + 320bit + 有效载荷)× 每秒包数 =(432bit + 有效载荷)× 每秒包数 =(432bit × 每秒包数) + (有效载荷 × 每秒包数) =(432bit × 1000 / 打包周期) + 编码速率 =(432bit / 打包周期)Kbps + 编码速率 按照
24 0
VOS 媒体转发开启后,如何计算各种编码所占用的带宽,以及如何修改服务器的时区
计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP 头 + RTP 头 + 有效载荷)× 每秒包数 =(112bit + 160bit + 64bit + 96bit + 有效载荷)× 每秒包数 =(112bit + 320bit + 有效载荷)× 每秒包数 =(432bit + 有效载荷)× 每秒包数 =(432bit × 每秒包数) + (有效载荷 × 每秒包数) =(432bit × 1000 / 打包周期) + 编码速率 =(432bit / 打包周期)Kbps + 编码速率 按照上面的计算公式: G
123 0
VOS3000最高支持多少并发,需要配置什么样的服务器
VOS3000™ 是针对中小等规模 VoIP 运营业务提供的支撑系统,除满足运营费率设定、套餐管理,账户管理、业终端管理、网关管理、数据查询、卡类管理、号码管理、系统管理等基本功能以外,系统还融合了 IVR 回拨直拨业务包,高性能媒体转发模块等附加模块,真正为您搭建一个稳定可靠的高性能运营系统。软交换采用 SIP/H323 协议互转核心,容量高达 5,000 线并发能力。系统经过严格测试,可提供高效稳定可靠的电信级运营服务。
211 0
实测阿里云slb转发策略的健康检查
小白实测阿里云slb的转发策略功能的健康检查问题
3431 0
云企业网开启重叠路由功能说明
关于开启重叠路由功能的介绍
1964 0
LogHub新增公网IP/服务端到达时间标签
日志服务LogHub功能新增加了两种默认标签:日志写入客户端的公网IP地址和服务端接受日志的时间。客户端公网IP可以用于统计客户端的位置分布。服务端到达时间可以统计日志的实际到达服务端的时间。
2148 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
探索连接的最后十秒”落时”的网关
立即下载
基于流量的灰度发布和自动弹性实践
立即下载
负载均衡SLB热点问题解答
立即下载