脚本备份交换机配置
来源:互联网 发布:网络病毒软件下载 编辑:程序博客网 时间:2024/05/21 10:26
刚刚学,尝试用python来备份交换机设备配置
该配置参考了http://bbs.chinaunix.net/thread-1710118-1-1.html
#!/usr/bin/python
import sysimport time
import os
import pexpect #使用pexpect模块来做远程控制
now = time.strftime("%y%m%d", time.localtime())
if not os.path.exists(r"/root/backup/%s" %now): #做个判断,如果该文件夹存在就不重复建立赋权限
os.mkdir(r"/root/backup/%s" %now) #以现在时间为名新建文件夹
os.chmod(r"/root/backup/%s" %now ,0777) #赋予权限
aa = open (r'%s/log.txt' %now, "w")
execlog = open (r'/root/backup/%s/pexpectlog.txt' %now, "w")
IP_PASS = open(r'/root/backup/%s/IPLIST.txt' %now ,'r')#将IP地址以及账号密码用逗号隔开,每个交换机一行
while True:
READALL = IP_PASS.readline()
if not READALL:#当地址读取完则退出循环
print 'END'
break
ALLLIST = READALL.split(',')
READIP = ALLLIST[0]
READUSE = ALLLIST[1]
READPASS = ALLLIST[2]
READEN = ALLLIST[3]
IPSP = READIP.split()
IPADD = IPSP[0]
PATH = now + "test"
foo = pexpect.spawn('/usr/bin/telnet %s' % READIP,logfile=execlog)#发起远程连接并记录执行过程
login = foo.expect(['Username:','Connection refused'])#之后就是一系列的检测关键字并输入配置的过程
if login == 0:
foo.sendline(READUSE)
foo.expect(['Password:'])
foo.sendline(READPASS)
elif login == 1:
print "%s connection refused!!!"
break
configmode = foo.expect(['>','#'])
if configmode == 0 :
foo.sendline('en')
foo.expect(['Password:'])
foo.sendline(READEN)
foo.expect(['#'])
foo.sendline('copy running-config tftp:')
elif configmode == 1 :
foo.sendline('copy running-config tftp:')
foo.expect(['Address or name of remote host'])
foo.sendline('192.168.1.1')
foo.expect(['Destination filename'])
foo.sendline(now + IPADD)
a = foo.expect (['!!','Error',pexpect.EOF,pexpect.TIMEOUT])
if a == 0:
aa.write('%s.....ok\n'%IPADD)
print "%s......ok\n" %IPADD
foo.expect(['#'])
foo.sendline('quit')
elif a == 1 or 2 or 3:
aa.write('%s......failed\n'%IPADD)
print "%s......failed\n" %IPADD
foo.sendline('quit')
foo.interact
print 'ALL DONE'
阅读全文
0 0
- 脚本备份交换机配置
- 自动备份华为交换机配置的SecureCRT的脚本
- expect备份交换机配置
- CISCO和H3C交换机备份配置
- Linux服务器配置脚本备份
- ORACLE RMAN备份的脚本配置
- Sqlserver 备份脚本——配置邮件
- 交换机配置
- 交换机配置
- 交换机配置
- PIX防火墙配置及交换机的捆绑和热备份配置
- cisco 通过tftp备份/恢复配置和3560交换机IOS升级
- 脚本备份
- 脚本备份
- 脚本备份
- 备份脚本
- 路由与交换机的备份
- H3C 交换机配置文件备份方法
- js年月日判断
- java JSP中的include的两种用法
- iOS开发-调试网络限速(真机和模拟器)
- 【OpenCV】摄像机标定+畸变校正
- Lua与C的交互(0)
- 脚本备份交换机配置
- Java设计模式
- 关于HTTP
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别 LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRAR
- LeNet在caffe中的实现分析
- 【Hive】Hive参数
- HashMap源码分析
- Android Application启动流程分析
- Python的list、tuple、set、dictionary操作总结