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就好了,具體自行谷歌百度。服務器

相關文章
相關標籤/搜索