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

  • 时间:
  • 浏览:17

代码以下

#!/bin/Python
#coding=utf⑻
#python-version=2.75           #利用python2
from ftplib import FTP    #援用ftplib库中的FTP功用模块,停止ftp下载利用
import time           #援用time模块
import os            #援用os模块
"""
利用字典,界说交流机主机,1个字典包括多个键 ,1个键利用1个列表,包括多个主机地点依照现实状况界说
"""
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', '***x')           #ftp.login办法,账户名为admin,稀码为***x
  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办法,以2进造的体例下载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⑶差别级别,翻开后显现ftp具体疑息,能够挑选利用
  # 0自动形式 1 #主动形式
  ftp.set_pasv(0)                          #那里利用ftp.set_pasv办法,肯定利用自动形式,1般ftp采取主动形式,有很年夜机率登录非常
  for hosts in dic.keys():                    #轮回dic字典的键值
    save(hosts, ftp)                     #挪用save函数
  # 封闭调试形式
  # ftp.set_debuglevel(0)                     #封闭调试开闭,后面若是翻开了开闭,则那里需求封闭
  ftp.quit()                            #ftp加入,必需利用
main()

利用结果

以上便是本文的全数内容,期望对各人的进修有所帮忙,也期望各人多多撑持剧本之家。