python代码 FTP备份交换机配置脚本实例解析


Posted in Python onAugust 01, 2019

代码如下

#!/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()

使用效果

python代码 FTP备份交换机配置脚本实例解析

python代码 FTP备份交换机配置脚本实例解析

python代码 FTP备份交换机配置脚本实例解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python检测远程端口是否打开的方法
Mar 14 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
解析python的局部变量和全局变量
Aug 15 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
Pytorch之finetune使用详解
Jan 18 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
python中if嵌套命令实例讲解
Feb 25 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 #Python
Python CVXOPT模块安装及使用解析
Aug 01 #Python
Python Selenium 之数据驱动测试的实现
Aug 01 #Python
Python 一键获取百度网盘提取码的方法
Aug 01 #Python
Django中的静态文件管理过程解析
Aug 01 #Python
pycharm 批量修改变量名称的方法
Aug 01 #Python
python腾讯语音合成实现过程解析
Aug 01 #Python
You might like
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python创建学生管理系统
2019/11/22 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
舞蹈教育学专业推荐信
2013/11/27 职场文书
主题婚礼策划方案
2014/02/10 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
婚宴邀请函
2015/01/30 职场文书
悬空寺导游词
2015/02/05 职场文书
实习单位意见
2015/06/04 职场文书