python脚本实现文件备份
2019-10-15 10:36
134 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013618226/article/details/102562463
python脚本实现文件备份
本脚本通过判断是否为周一来执行完全备份或增量备份,需提前放到计划任务中每天执行,实现周一完全备份,之后每天增量备份的功能.具体代码实现如下
#!/root/bin/python from time import strftime import os import tarfile import hashlib import pickle def check_md5(fname): m = hashlib.md5() with open(fname,'rb') as fobj: while 1: data = fobj.read(4096) if not data: break m.update(data) return m.hexdigest() def full_backup(src,dst,md5file): fname = os.path.basename(src) fname = '%s_full_%s.tar.gz'% (fname,strftime('%Y%m%d')) fname = os.path.join(dst,fname) tar = tarfile.open(fname,'w:gz') tar.add(src) tar.close() md5dict = {} for path,folders,files in os.walk(src): for file in files: key = os.path.join(path,file) md5dict[key] = check_md5(key) with open(md5file,'wb') as fobj: pickle.dump(md5dict,fobj) def incr_backup(src,dst,md5file): fname = os.path.basename(src) fname = '%s_incr_%s.tar.gz'% (fname,strftime('%Y%m%d')) fname = os.path.join(dst,fname) md5dict = {} for path,folders,files in os.walk(src): for file in files: key = os.path.join(path,file) md5dict[key] = check_md5(key) with open(md5file, 'rb') as fobj: old_md5 = pickle.load(fobj) tar = tarfile.open(fname, 'w:gz') for key in md5dict: if old_md5.get(key) != md5dict[key]: tar.add(key) tar.close() with open(md5file,'wb') as fobj: pickle.dump(md5dict,fobj) if __name__ == '__main__': src = '/tmp/demo/security' dst = '/tmp/demo/backup' md5file = '/tmp/demo/backup/md5.data' if strftime('%a') == 'Mon': full_backup(src,dst,md5file) else: incr_backup(src,dst,md5file)
相关文章推荐
- Python脚本实现windows下文件的备份
- Python实现简单的文件传输与MySQL备份的脚本分享
- Python实现简单的文件传输与MySQL备份的脚本分享
- python实现windows下文件备份脚本
- python: 通过脚本实现重要文件的备份
- 用python编写脚本实现备份文件
- Python open读写文件实现脚本
- (windows)python脚本:自动备份并压缩文件,同时删除过期文件
- Python中在脚本中引用其他文件函数的实现方法
- 利用windows脚本实现文件的自动备份
- Python实现查找指定目录下包括某关键字的所有文件脚本
- python实现mysql备份的脚本
- python文件备份脚本
- Python 实现在对一个目录下所有文件,指定某一行之后添加内容(批处理脚本)
- VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)
- 编写Python脚本来备份文件
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- python 备份文件脚本
- shell脚本实现定时备份某文件
- Windows下Python3实现C++多文件编译脚本(没有Make怎么办)