Python 自动备份SVN版本库并复制到远程主机用法示例

Python 自动备份SVN版本库并复制到远程主机用法示例,第1张

概述Python 自动备份SVN版本库并复制到远程主机用法示例 对python这个高级语言感兴趣的小伙伴,下面一起跟随内存溢出 jb51.cc的小编两巴掌来看看吧!
# @param Python 自动备份SVN版本库并复制到远程主机脚本# @author 内存溢出 jb51.cc|jb51.cc #!/usr/bin/python  # -*- Coding: utf-8 -*-    import os import re import tarfile import datetime import pexpect basedir='/data/bak/' #文件夹  ipList=['']# IP地址  def get_List(txt_file):     ret_List = []     fin = open(txt_file,'r')     for line in fin:         if (re.match('^\s*$',line)):     #跳过是空白的行               continue        else:             line = line.lstrip()             line = line.rstrip()  #将回车(\n)去掉              ret_List.append(line)     #print('deBUG info of get_List :\n',ret_List)      return ret_List       def copy_svn(fileList): #这个函数主要是完成dump      name= []     name=os.path.split(fileList)     Now = datetime.datetime.Now()     filename = Now.strftime(basedir+ipList[0] +name[-1]+ '_%Y%m%d_%H%M%s.dump')     os.system('svnadmin dump ' + fileList +' > '+filename )         tarname =  Now.strftime(basedir+ipList[0]+'_SVNDump_' +name[-1]+ '_%Y%m%d_%H%M%s.tar.gz')     #print tarname      tar = tarfile.open(tarname,'w|gz')     tar.add(filename)     tar.close()                 scp = pexpect.spawn('scp -r ' +  tarname  + ' root@IP:/data/databak/filesBack/')     scp.expect('.ssword:*')     scp.sendline('密码')       scp.expect(pexpect.EOF,timeout=None)               olddate = (Now - datetime.timedelta(5)).strftime("%Y%m%d")     print olddate              for i in os.Listdir(basedir):         file = re.search(r'\w*[_](\d{8})[_]\d{6}.(tar.gz|dump)',i)         #print i,file          if file and olddate>=file.group(1):             os.remove(basedir + file.group(0))             print 'del:',file.group(0)             filelog=open("/data/bak/bak.log","a")             filelog.write("============DATE:%s============= \n"% Now.strftime("%Y%m%d"))             filelog.write("del file:%s \n" % (basedir+file.group(0) ))             filelog.write("============DATE:%s============= \n"% Now.strftime("%Y%m%d"))         filelog.close()      def copy_files(txt_file):     geted_List = get_List(txt_file)     for file in geted_List:         copy_svn(file)       if __name__ == '__main__':     copy_files('/data/bak/filebak.txt')     print '='*20,'\ncopy_OKOKOK\n','='*20  #!/usr/bin/python# -*- Coding: utf-8 -*- import osimport reimport tarfileimport datetimeimport pexpectbasedir='/data/bak/' #文件夹ipList=['']# IP地址def get_List(txt_file):    ret_List = []    fin = open(txt_file,'r')    for line in fin:        if (re.match('^\s*$',line)):     #跳过是空白的行            continue        else:            line = line.lstrip()            line = line.rstrip()  #将回车(\n)去掉            ret_List.append(line)    #print('deBUG info of get_List :\n',ret_List)    return ret_List    def copy_svn(fileList): #这个函数主要是完成dump    name= []    name=os.path.split(fileList)    Now = datetime.datetime.Now()    filename = Now.strftime(basedir+ipList[0] +name[-1]+ '_%Y%m%d_%H%M%s.dump')    os.system('svnadmin dump ' + fileList +' > '+filename )      tarname =  Now.strftime(basedir+ipList[0]+'_SVNDump_' +name[-1]+ '_%Y%m%d_%H%M%s.tar.gz')    #print tarname    tar = tarfile.open(tarname,'w|gz')    tar.add(filename)    tar.close()            scp = pexpect.spawn('scp -r ' +  tarname  + ' root@IP:/data/databak/filesBack/')    scp.expect('.ssword:*')    scp.sendline('密码')     scp.expect(pexpect.EOF,timeout=None)          olddate = (Now - datetime.timedelta(5)).strftime("%Y%m%d")    print olddate           for i in os.Listdir(basedir):        file = re.search(r'\w*[_](\d{8})[_]\d{6}.(tar.gz|dump)',i)        #print i,file        if file and olddate>=file.group(1):            os.remove(basedir + file.group(0))            print 'del:',file.group(0)           filelog=open("/data/bak/bak.log","a")            filelog.write("============DATE:%s============= \n"% Now.strftime("%Y%m%d"))            filelog.write("del file:%s \n" % (basedir+file.group(0) ))            filelog.write("============DATE:%s============= \n"% Now.strftime("%Y%m%d"))     filelog.close()   def copy_files(txt_file):    geted_List = get_List(txt_file)    for file in geted_List:        copy_svn(file)    if __name__ == '__main__':    copy_files('/data/bak/filebak.txt')    print '='*20,'='*20# End www.jb51.cc
总结

以上是内存溢出为你收集整理的Python 自动备份SVN版本库并复制到远程主机用法示例全部内容,希望文章能够帮你解决Python 自动备份SVN版本库并复制到远程主机用法示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存