ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

主备机房出口切换 python脚本

2021-02-23 22:57:33  阅读:180  来源: 互联网

标签:ip python 0.0 route 机房 主备 expect child sendline


在前东家的时候,A 机房出口偶发会挂掉,需要切换到备机房B-IDC 出口。全自动化脚本是不可能的,只能半自动化脚本进行切换。基本上就是在核心上把A机房的路由干掉,转化指向B机房。如果A机房出口恢复再反向切换回来。A机房使用的是华为核心交换、B机房使用的是思科的核心交换,比较有代表性。脚本做过实际测试,并且在大促的时候成功的切换过流量,减少了损失。个人感觉还是非常有价值的一件事情 。现在把脚本分享出来仅供语法格式参考,所有ip已做更改。
#! /usr/bin/env python

import pexpect
import sys

child = pexpect.spawn('telnet 10.1.1.250')  
fout = file('huawei.txt','w')
child.logfile = fout

child.expect("Username:")
child.sendline('admin')
child.expect('Password:')
child.sendline('输入密码')
child.expect('>')

# for test
child.sendline('sys')
child.expect(']')
child.sendline('')

#child.sendline('sys')
child.expect(']')
child.sendline('undo ip route-static 0.0.0.0 0.0.0.0 10.11.12.254')
child.expect(']')
child.sendline('ip route-static 0.0.0.0 0.0.0.0 172.32.4.2')
child.expect(']')
child.sendline('ip route-static 0.0.0.0 0.0.0.0 172.32.5.2')
child.expect(']')
child.sendline('quit')

print "YJ-IDC changed finished"

child = pexpect.spawn('telnet 10.12.2.1')
fout = file('cisco.txt','w')
child.logfile = fout

child.expect("Username:")
child.sendline('admin')
child.expect('Password:')
child.sendline('cisco@123')
child.expect('>')
child.sendline('en')
child.expect('Password:')
child.sendline('输入密码')
child.expect('#')
child.sendline('conf t')
child.expect('#')
child.sendline('')
child.expect('#')
child.sendline('')
child.expect('#')
child.sendline('ip route 172.17.0.0 255.255.0.0 172.32.2.1')
child.expect('#')
child.sendline('ip route 172.17.0.0 255.255.0.0 172.32.3.1')
child.expect('#')
child.sendline('ip route 0.0.0.0 0.0.0.0 10.1.1.254')
child.expect('#')
child.sendline('no ip route 0.0.0.0 0.0.0.0 172.32.2.1')
child.expect('#')
child.sendline('no ip route 0.0.0.0 0.0.0.0 172.32.3.1')
child.expect('#')
child.sendline('exit')
child.expect('#')
child.sendline('exit')
print "ALL OF changed outside route finished"

标签:ip,python,0.0,route,机房,主备,expect,child,sendline
来源: https://blog.51cto.com/keep11/2634600

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有