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 SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
利用Anaconda简单安装scrapy框架的方法
Jun 13 Python
python获取服务器响应cookie的实例
Dec 28 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 Python
matplotlib.pyplot.plot()参数使用详解
Jul 28 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 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
javascript的函数
2007/01/31 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
详解javascript函数的参数
2015/11/10 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
Python内置函数dir详解
2015/04/14 Python
python线程、进程和协程详解
2016/07/19 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python实现的栈(Stack)
2018/01/26 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python日志syslog使用原理详解
2020/02/18 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
班长自荐书范文
2014/02/11 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
打架检讨书范文
2015/01/27 职场文书
2015年安全生产责任书
2015/01/30 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python