原文有部分小错误,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()
版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接。
请在这里放置你的在线分享代码