资讯专栏INFORMATION COLUMN

python3备份交换机配置脚本

changfeng1050 / 1046人阅读

摘要:公司交换机防火墙台左右,理论上定期需要进行备份,可是这种需要人亲自去做的事情经常容易忘记,所以打算写个简单的脚本自动备份。

公司交换机、防火墙20台左右,理论上定期需要进行备份,可是这种需要人亲自去做的事情经常容易忘记,所以打算写个简单的python脚本自动备份。

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

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

方法三、使用python3标准库ftplib里面的FTP模块实现在linux上定时ftp到交换机下载相应的配置文件,接下来讲的就是这种方式:

 1、交换机配置好ftp,相关配置自行谷歌百度,配置好后本地ftp上去是这样的


其中vrpcfg.zip就是配置文件

2、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("../")
    
批量备份后是这样的

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38527.html

相关文章

  • redis 集群搭建以及redislive监测部署

    摘要:集群搭建以及监测环境实现主从的集群虚拟机单机集群基本搭建简单下载通过解压缩指定安装路径,切换用户执行,可能出现权限不够的问题,同样会报错,直接使用进行操作。分为两部分,其中一部分为监控脚本,另一部分为服务,所以需要分别启动。 redis 集群搭建以及监测环境 实现3主3从的集群 虚拟机单机ip:192.168.40.128 集群基本搭建 简单下载 通过 wget http://dow...

    mmy123456 评论0 收藏0
  • CentOS7.3 编译安装 Python3.6.2

    摘要:我使用的是安装查看是否已经安装默认安装了因为一些命令要用它比如它使用的是使用命令查看一下是否安装然后查看一下可执行文件的位置进入到目录月月月可以看到可执行文件指向,又指向也就是说命令执行的系统预装的要安装的其他版本先执行命令 showImg(https://segmentfault.com/img/remote/1460000012923762); 我使用的是 CentOS7.3 安装...

    yibinnn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<