Linux自动定时备份文件夹Python脚本
2013-05-28 16:21:15 来源:开发学院核心提示:#!/usr/bin/python# -*- coding: utf-8 -*-import osimport reimport tarfileimport datetimeimport pexpectbasedir='/data/bak/'iplist=['167', '178
#!/usr/bin/python # -*- coding: utf-8 -*- import os import re import tarfile import datetime import pexpect basedir='/data/bak/' iplist=['167', '178', '179', '180', '181', '182'] 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): #这个函数主要是完成对文件夹的打包工作 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]+name[-1]+ '_%Y%m%d_%H%M%S.tar.gz') #print tarname tar = tarfile.open(tarname, 'w|gz') tar.add(filelist+'/') #加最后的‘/’是为了打包当前目录,否则会将父目录整体打包,为了保持与dump脚本一致性做的修改 tar.close() #调用pexcept scp = pexpect.spawn('scp -r ' + tarname + ' root@IP:/data/databak/FilesBack/') scp.expect('.ssword:*') scp.sendline('roamer@hisap2') 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(basedir+"bak_doc.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/bak_doc.txt') print '='*20,'\ncopy_OKOKOK\n','='*20
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
更多精彩
赞助商链接