python以ftplib批量备份华为交换机配置文件(测试可用)

python3以ftplib备份华为交换机配置文件(测试可用

原文有部分小错误,python3.8测试,修复后可用。

#! env python
# coding=utf-8

# ver2.0
# 使用ftp方式本地备份相同密码的华为交换机配置文件
# python3.8版本测试通过
from ftplib import FTP
import time
import os
import sys
dic = {'测试ip': ['192.168.137.11', '192.168.137.22', '192.168.137.33']}      #填写需要备份的交换机ip地址
def save(hosts, ftp):
      url = 'd:\\gho\\{}'.format(hosts)                                     #备份文件路径需要手动填写,注意不同py版本的\\使用
      today = time.strftime("%Y-%m-%d", time.localtime())
      clock = time.strftime("%H:%M:%S", time.localtime())
      ftp_error_log = 'd:\\gho\\备份日志\\{}.txt'.format(today)              #备份日志路径需要手动填写
      if not os.path.exists(url):
        os.mkdir(url)
      for host in dic[hosts]:
        os.chdir(url)
        if not os.path.exists(host):
            os.mkdir(host)
            os.chdir(host)
        else:
            os.chdir(host)
        try:
            ftp.connect(host='192.168.137.1', port=21)   #此处填写ftp服务器ip和端口
            ftp.login(user='admin', passwd='111111')     #此处填写ftp服务器用户名和密码
            bufsize = 1024
            filename = "{}.zip".format(today)
            file_handle = open(filename, "wb").write
            ftp.retrbinary("RETR vrpcfg.zip", file_handle, bufsize)
            print("login " + host)
            print(ftp.getwelcome())
            print(host + " ftp down ok")
        except Exception as e:
            print('{} is loss , msg:-{},time is {}'.format(host, e, clock))
            print('{} is loss , msg:-{},time is {}'.format(host, e, clock), file=open(ftp_error_log, 'a'))  # 保存错误日志


def main():
    ftp = FTP()
    ftp.set_debuglevel(2)
# 0主动模式 1 #被动模式
    ftp.set_pasv(0)
    for hosts in dic.keys():
        save(hosts, ftp)
    # 关闭调试模式
# ftp.set_debuglevel(0)
    ftp.quit()
    ftp.close()
# ftp_error_log.close()


if __name__ == '__main__':
    main()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值