Python 自动备份SVN版本库并复制到远程主机脚本详解编程语言
2023-06-13 09:20:24 时间
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 + [email protected]:/data/databak/FilesBack/) scp.expect(.ssword:*) scp.sendline(密码) scp.expect(pexpect.EOF, timeout=None)
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 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 + [email protected]:/data/databak/FilesBack/) scp.expect(.ssword:*) scp.sendline(密码) scp.expect(pexpect.EOF, timeout=None)
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
scp = pexpect.spawn(scp -r + tarname + [email protected]:/data/databak/FilesBack/) scp.expect(.ssword:*) scp.sendline(密码) scp.expect(pexpect.EOF, timeout=None)
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 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 + [email protected]:/data/databak/FilesBack/) scp.expect(.ssword:*) scp.sendline(密码) scp.expect(pexpect.EOF, timeout=None)
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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8327.html
cjavapython相关文章
- 快速入门Python机器学习(34)
- python 字符串转成数字_python数字转十六进制字符串
- python re.compile() 详解——Python正则表达式「建议收藏」
- python详细安装教程环境配置_Python配置环境
- 我用python算出了同事的身份证号码!
- 苹果电脑python官网下载步骤-Python下载和安装图文教程[超详细]
- python编程是啥-Python编程「建议收藏」
- python进制转换函数-Python中进制转换函数的使用
- python手机端秒杀_python实现淘宝秒杀脚本
- python爬虫—–Python访问http的几种方式「建议收藏」
- Python面向对象特性 — 多继承【多继承顺序、新式类和经典类】
- Python: 复制文件和文件夹
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- 【说站】python字典中键值对的操作
- Python实现自动回复_python 微信机器人
- python中zipfile的使用_python调用winrar解压
- python urllib的基本使用之urlopen()
- Python win32api_python api文档
- 17道经典考题,检验你的 Python 基本功
- Python基础(十三):集合的详细讲解
- 搞定!Linux下快速设置Python环境变量(linux设置python环境变量)
- 学习Python精通SQL Server操作技巧(python操作sqlserver)
- Linux环境下安装Python(linux装python)
- Python操作Redis实现数据持久化(python操作redis)
- 从 Python 连接到 MySQL:实现更多强大的数据库应用(python和mysql)
- Python操作MySQL数据库的必备模块mysqlpython(mysql_python)
- python使用PyV8执行javascript代码示例分享
- python网络编程示例(客户端与服务端)