python3备份交换机配置脚本

公司交换机、防火墙20台左右,理论上按期须要进行备份,但是这种须要人亲自去作的事情常常容易忘记,因此打算写个简单的python脚本自动备份。

方法1、比较新的网络设备如今都支持save后10分钟自动ftp备份配置到ftp服务器,但是我这里有部分华为S5700旧款没有这个功能,没法用统一方法进行备份,不采纳。

方法2、python3下能够下载一些模块进行自动ssh设备并操做,如:paramiko、pexpect。但是我用的时候发现竟然没法翻页(dis cu 的时候想按空格一直往下刷作不到),这两个模块摸索浪费了我很长时间都没法实现,不采纳。

方法3、使用python3标准库ftplib里面的FTP模块实如今linux上定时ftp到交换机下载相应的配置文件,接下来说的就是这种方式:
一、交换机配置好ftp,相关配置自行谷歌百度,配置好后本地ftp上去是这样的

clipboard.png
其中vrpcfg.zip就是配置文件python

二、python3脚本
单一备份
from ftplib import FTP
import time,os
Today = time.strftime("%Y-%m-%d", time.localtime())#获取当天时间2017-03-27
ftp = FTP()#建立变量
ftp.set_debuglevel(2)#开启debug模式
ftp.connect(host="192.168.254.X",port=21)#FTP地址(交换机地址)
ftp.login(user="admin",passwd="XXXXXXXX")#FTP帐号密码
print(ftp.getwelcome())#打印ftp登录成功信息
os.chdir('./192.168.254.242')#改变当前路径至192.168.254.242(已经在该目录下建立了这个文件夹)
bufsize=1024#不太理解
filename="{}.zip".format(Today)#建立日期为前缀的zip文件
file_handle=open(filename,"wb").write#建立写操做
ftp.retrbinary("RETR vrpcfg.zip",file_handle,bufsize)#ftp后获取vrpcfg.zip这个文件并写入本地文件
ftp.set_debuglevel(0)#关闭调试模式
ftp.quit()#关闭FTP

批量备份
from ftplib import FTP
import time,os
Today = time.strftime("%Y-%m-%d", time.localtime())
hosts = ['192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X',
         '192.168.254.X']
port = 21
user = 'admin'
pwd = 'XXXXXX'
for host in hosts:
    # if host not in os.listdir('./'):
    if os.path.exists(host) is False:#os.path.exists(path) 判断一个目录是否存在
        os.mkdir(host)#os.mkdir(path) 建立目录
        os.chdir(host)#os.mkdir(path) 改变当前目录
    else:
        os.chdir(host)
    ftp = FTP()
    ftp.set_debuglevel(2)
    ftp.connect(host,port)
    ftp.login(user,pwd)
    bufsize = 1024
    filename = "{}.zip".format(Today)
    file_handle = open(filename, "wb").write
    ftp.retrbinary("RETR vrpcfg.zip", file_handle, bufsize)
    ftp.set_debuglevel(0)
    ftp.quit()
    os.chdir('../')
    
批量备份后是这样的

clipboard.png

备份的文件都已日期为前缀linux

clipboard.png

定时备份使用linux的 crontab -e按时执行back.py就好了,具体自行谷歌百度。服务器

相关文章
相关标签/搜索