python代码 FTP备份交换机配置脚本实例解析
作者:羊草 时间:2023-05-08 22:47:25
代码如下
#!/bin/python
#coding=utf-8
#python-version=2.75 #使用python2
from ftplib import FTP #引用ftplib库中的FTP功能模块,进行ftp下载使用
import time #引用time模块
import os #引用os模块
"""
使用字典,定义交换机主机,一个字典包含多个键 ,一个键使用一个列表,包含多个主机地址按照实际情况定义
"""
dic = {
'tongjiju':['XXXX.XXXX.XXXX.XXXX',
'XXXX.XXXX.XXXX.XXXX',
'XXXX.XXXX.XXXX.XXXX'],
'dishui':['XXXX.XXXX.XXXX.XXXX','XXXX.XXXX.XXXX.XXXX']
}
"""
定义函数save,hosts
"""
def save(hosts, ftp): #函数名save,两个参数,hosts和ftp
url = '/root/backup_new/{}'.format(hosts) #定义下载文件保存路径和目录url ,位置为/root/backup_new/,按照hosts内容格式化名称
Today = time.strftime("%Y-%m-%d", time.localtime()) #定义时间,按照本地时间年月日定义
if not os.path.exists(url): #判断url文件是否存在,不存在
os.mkdir(url) #则新建目录url
for host in dic[hosts]: #循环,逐一循环字典中键和键值
os.chdir(url) #切换目录到url(/root/backup_new/)
if not os.path.exists(host): #判断如果没有定义和创建host(按照列表中的主机地址)的文件目录
os.mkdir(host) #创建host目录
os.chdir(host) #切换到host目录
else: #否则(当host目录存在时)
os.chdir(host) #切换到host目录
try: #错误处理机制try,当发生错误时,按照指定方式进行,因为有时主机不可达,ftp连接不上会报错
ftp.connect(host, '21') #ftp.connect方法,主机为host(列表中地址),端口21
ftp.login('admin', 'xxxx') #ftp.login方法,账户名为admin,密码为xxxx
print "login " + host #打印 login和host,例如 login 172.31.216.2
print ftp.getwelcome() #ftp.getwelcome方法,打印ftp登录成功信息
bufsize = 1024 #缓存区大小1024
filename = "{}.zip".format(Today) #ftp下载的文件按照今天(Today前面定义过)时间命名,例如2018=07-01.zip
file_handle = open(filename, "wb").write #以ftp读写的打开文件filename
ftp.retrbinary("RETR vrpcfg.zip", file_handle, bufsize) #ftp.retrbinary方法,以二进制的方式下载vrpcfg.zip的文件(华为交换机的配置文件),然后以读写的方式保存
print host + " ftp down ok" #打印host和"ftp down ok",例如172.31.216.2 ftp down ok
except Exception as e: #如果以上try语句部分发生错误,ftp不可达到,则跳转到该处,执行,整个过程不中断
print '{} is loss , msg:-{}'.format(host, e) #打印错误信息,例如172.31.216.2 is loss,msg:-error
"""
定义主函数
"""
def main(): #函数名
ftp = FTP() #定义ftp=FTP()空函数
# ftp.set_debuglevel(2) #打开ftp调试开关,有0-3不同级别,打开后显示ftp详细信息,可以选择使用
# 0主动模式 1 #被动模式
ftp.set_pasv(0) #这里使用ftp.set_pasv方法,确定使用主动模式,一般ftp采用被动模式,有很大机率登录异常
for hosts in dic.keys(): #循环dic字典的键值
save(hosts, ftp) #调用save函数
# 关闭调试模式
# ftp.set_debuglevel(0) #关闭调试开关,前面如果打开了开关,则这里需要关闭
ftp.quit() #ftp退出,必须使用
main()
使用效果
来源:https://blog.51cto.com/11555417/2136141
标签:python,ftp,备份,交换机,配置,脚本
0
投稿
猜你喜欢
详解python第三方库的安装、PyInstaller库、random库
2023-03-13 06:57:46
使用Python matplotlib绘制简单的柱形图、折线图和直线图
2022-04-08 02:13:19
使用Python的Django框架结合jQuery实现AJAX购物车页面
2023-05-21 01:59:28
Python调用ChatGPT制作基于Tkinter的桌面时钟
2023-05-11 08:23:23
使用Pytorch搭建模型的步骤
2022-03-05 21:28:38
使用mss2sql工具将SqlServer转换为Mysql全记录
2024-01-24 11:59:37
Python按天实现生成时间范围序列的方法详解
2022-12-31 13:48:45
python-opencv-cv2.threshold()二值化函数的使用
2022-12-31 23:00:12
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2022-01-01 08:19:10
Python format函数详谈
2023-12-24 03:57:59
Python中求对数方法总结
2023-04-13 22:20:28
深入理解MySQL重做日志 redo log
2024-01-13 22:25:36
超详细汇总21个值得收藏的mysql优化实践
2024-01-17 21:01:18
Thinkphp5框架实现获取数据库数据到视图的方法
2024-05-03 15:52:16
Hadoop 文件系统命令行基础详解
2023-08-31 13:57:03
Golang轻量级IoC容器安装使用示例
2023-07-23 14:49:12
python图片剪裁代码(图片按四个点坐标剪裁)
2021-03-18 21:07:05
javascript insertAfter()定义与用法示例
2024-04-26 17:11:23
Python数字图像处理代数之加减乘运算
2023-03-20 07:51:26
Python 生成多行重复数据的方法实现
2022-07-26 18:56:07