python pexpect 实现自动备份交换机配置_milw0rm_百度空间

下脚本使用PYTHON执行,可以顺利完成自动化

需要环境:python 2.5 以及 pexpect模块(附件中包含了)FTP SERVER

安装完PYTHON2.5之后解压pexpect-0.98.tgz

之后cd pexpect-0.98

Python setup.py install 这样模块就安装完成了

以下是自动备份代码

#!/usr/bin/python

import sys

import time

import os

import pexpect

now = time.strftime("%y%m%d", time.localtime()) #取得现在时间,格式为“年月日”

os.mkdir("/var/ftp/%s" % now, 0777) #创建FTP目录

os.chmod("/var/ftp/%s" % now, 0777) #更改FTP目录的权限,使得EVERYONE可以上传

aa = open ('/var/ftp/%s/log.txt' % now, "w") #开启日志记录

fout = open ('log.txt', "w")

file = open('ip.txt','r') #这里指定IP文件,可以写{jd1}路径

pafile = open('password.txt','r') #这里指定PASSWORD文件

while 1:

dufile = file.readline() #读取IP文件中的{dy}行

dufile = dufile.rstrip() #读取PASSWOED中的{dy}行

dupafile = pafile.readline()

dupafile = dupafile.rstrip()

if not dufile: #如果IP文件中的IP全部读完,就跳出循环。如果没读完,就继续读下一行

break

path = now + '/' + dufile #定义路径格式为:日期(目录)/IP(文件名)

foo = pexpect.spawn('telnet %s' % dufile) #TELNET {dy}个IP

foo.log_file = fout

foo.expect(['Username:']) #等待字符串,如果是生产的话这里需要改一下,我是在测试环境中执行的。

foo.sendline('admin') #输出admin

foo.expect(['Password:'])

foo.sendline('admin')

foo.sendline('en')

foo.expect(['Password:'])

foo.sendline(dupafile) #输出PASSWORD中的密码

foo.expect(['#'])

foo.sendline('copy flash:config.text ftp:') #使用FTP备份配置文件

foo.expect(['Address or name of remote host'])

foo.sendline('192.168.52.3') #FTP SERVER地址

foo.expect(['config.text'])

foo.sendline(path) #另存为的名字

a = foo.expect (['bytes/sec', 'Error', pexpect.EOF, pexpect.TIMEOUT]) #等待字符串,如果出现'bytes/sec'就说明备份成功,出现'Error'就没有备份成功

if a == 0:

aa.write('%s......ok\n' % dufile) #输出到日志,记录成功

foo.expect(['#'])

foo.sendline('quit') #退出

foo.interact

foo.close()

if a == 1:

aa.write('%s......failed\n' % dufile) #输出到日志,记录失败

foo.sendline('quit')

foo.interact

foo.close()

aa.close()

fout.close()

运行完之后在FTP目录下可以看到log.txtcat log.txt可以看到:

192.168.18.36......ok

192.168.18.37......failed

192.168.18.38......failed

之后把脚本添加到CRONTAB中就可以按需执行



郑重声明:资讯 【python pexpect 实现自动备份交换机配置_milw0rm_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——