日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

备份程序

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 备份程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、既要可以實(shí)現(xiàn)完全備份,又要實(shí)現(xiàn)增量備份
2、完全備份時(shí),將目錄打個(gè)tar包,計(jì)算每個(gè)文件的md5值
3、增量備份時(shí),備份有變化的文件和新增加的文件,更新md5值

import time import os import tarfile import hashlib import pickledef check_md5(fname):m = hashlib.md5()with open(fname, 'rb') as fobj:while True:data = fobj.read(4096)if not data:breakm.update(data)return m.hexdigest()def full_backup(src_dir, dst_dir, md5file):fname = os.path.basename(src_dir.rstrip('/'))fname = '%s_full_%s.tar.gz' % (fname, time.strftime('%Y%m%d'))fname = os.path.join(dst_dir, fname)md5dict = {}tar = tarfile.open(fname, 'w:gz')tar.add(src_dir)tar.close()for path, folders, files in os.walk(src_dir):for each_file in files:key = os.path.join(path, each_file)md5dict[key] = check_md5(key)with open(md5file, 'wb') as fobj:pickle.dump(md5dict, fobj)def incr_backup(src_dir, dst_dir, md5file):fname = os.path.basename(src_dir.rstrip('/'))fname = '%s_incr_%s.tar.gz' % (fname, time.strftime('%Y%m%d'))fname = os.path.join(dst_dir, fname)md5dict = {}with open(md5file, 'rb') as fobj:oldmd5 = pickle.load(fobj)for path, folders, files in os.walk(src_dir):for each_file in files:key = os.path.join(path, each_file)md5dict[key] = check_md5(key)with open(md5file, 'wb') as fobj:pickle.dump(md5dict, fobj)tar = tarfile.open(fname, 'w:gz')for key in md5dict:if oldmd5.get(key) != md5dict[key]:tar.add(key)tar.close()if __name__ == '__main__':# mkdir /tmp/demo; cp -r /etc/security /tmp/demosrc_dir = '/tmp/demo/security'dst_dir = '/var/tmp/backup' # mkdir /var/tmp/backupmd5file = '/var/tmp/backup/md5.data'if time.strftime('%a') == 'Mon':full_backup(src_dir, dst_dir, md5file)else:incr_backup(src_dir, dst_dir, md5file)

?

轉(zhuǎn)載于:https://www.cnblogs.com/lsgo/p/10603453.html

總結(jié)

以上是生活随笔為你收集整理的备份程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。