亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python 實現文件的全備份和差異備份詳解

2020-02-23 04:12:10
字體:
來源:轉載
供稿:網友

Python實現文件的全備份和差異備份

之前有寫利用md5方式來做差異備份,但是這種md5方式來寫存在以下問題:

md5sum獲取有些軟連接的MD5值存在問題 不支持對空目錄進行備份,因為md5sum無法獲取空目錄的md5值 權限的修改md5sum無法判斷

解決方案:

利用文件的mtime ctime

mtime(Modified time)是在寫入文件時隨文件內容的更改而更改的

ctime(Create time)是在寫入文件、更改所有者、權限或鏈接設置時隨Inode的內容更改而更改的

廢話不多說直接上代碼:

#!/usr/bin/env pythonimport time,os,sys,cPicklefileInfo = {}def logger(time,fileName,status,fileNum):  f = open('backup.log','a')  f.write("%s/t%s/t%s/t/t%s/n" % (time,fileName,status,fileNum))def tar(sDir,dDir,fileNum):  command = "tar zcf %s %s >/dev/null 2>&1" % (dDir + ".tar.gz",sDir)  if os.system(command) == 0:    logger(time.strftime('%F %X'),dDir + ".tar.gz",'success',fileNum)  else:    logger(time.strftime('%F %X'),dDir + ".tar.gz",'failed',fileNum)def fullBak(path):  fileNum = 0  for root,dirs,files in os.walk(path):    for name in files:      file = os.path.join(root, name)      mtime = os.path.getmtime(file)      ctime = os.path.getctime(file)      fileInfo[file] = (mtime,ctime)      fileNum += 1  f = open(P,'w')  cPickle.dump(fileInfo,f)  f.close()  tar(S,D,fileNum)def diffBak(path):  for root,dirs,files in os.walk(path):    for name in files:      file = os.path.join(root,name)      mtime = os.path.getmtime(file)      ctime = os.path.getctime(file)      fileInfo[file] = (mtime,ctime)  if os.path.isfile(P) == 0:    f = open(P,'w')    f.close()  if os.stat(P).st_size == 0:    f = open(P,'w')    cPickle.dump(fileInfo,f)    fileNum = len(fileInfo.keys())    f.close()    print fileNum    tar(S,D,fileNum)  else:    f = open(P)    old_fileInfo = cPickle.load(f)    f.close()    difference = dict(set(fileInfo.items())^set(old_fileInfo.items()))    fileNum = len(difference)    print fileNum    difference_file = ' '.join(difference.keys())    print difference_file    tar(difference_file,D,fileNum)    f = open(P,'w')    cPickle.dump(fileInfo,f)    f.close()def Usage():  print '''    Syntax: python file_bakcup.py pickle_file model source_dir filename_bk      model: 1:Full backup 2:Differential backup    example: python file_backup.py fileinfo.pk 2 /etc etc_$(date +%F)      explain: Automatically add '.tar.gz' suffix  '''  sys.exit()if len(sys.argv) != 5:  Usage()P = sys.argv[1]M = int(sys.argv[2])S = sys.argv[3]D = sys.argv[4]if M == 1:  fullBak(S)elif M == 2:  diffBak(S)else:  print "/033[;31mDoes not support this mode/033[0m"  Usage()

測試:

$ python file_backup.py data.pk 1 data data_$(date +%F) #全備份$ > data/www.linuxeye.com #測試創建文件,修改文件權限$ chmod 777 data/py/eshop_bk/data.db$ python file_backup.py data.pk 2 data data_$(date +%F)_1 #備份改變的文件2data/py/eshop_bk/data.db data/www.linuxeye.com            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本亚洲欧洲色α| 国产美女精品免费电影| 黄色一区二区在线观看| 国语自产精品视频在线看| 国产一区二区视频在线观看| 欧美一区二区三区四区在线| 亚洲国产精彩中文乱码av| 97久久超碰福利国产精品…| 国产玖玖精品视频| 国产亚洲一区二区精品| 中文字幕视频一区二区在线有码| 95av在线视频| 国产精品日日摸夜夜添夜夜av| 日韩小视频在线观看| 97色在线播放视频| 国产亚洲精品一区二区| 中文字幕精品国产| 亚洲女同精品视频| 国语自产精品视频在线看抢先版图片| 欧美日韩午夜激情| 在线观看精品自拍私拍| 国产欧美精品va在线观看| 欧美大尺度电影在线观看| 超薄丝袜一区二区| 国产精品v片在线观看不卡| 搡老女人一区二区三区视频tv| 日韩av在线高清| 日韩精品在线观看网站| 亚洲国产一区二区三区在线观看| 91久久精品视频| 97视频在线观看免费| 久久视频在线直播| 精品亚洲永久免费精品| 亚洲精品一区二区在线| 国产亚洲欧美aaaa| 成人av电影天堂| 91在线视频免费| 91最新国产视频| 欧美日韩国产一区二区| 亚洲欧美另类中文字幕| 国产日韩精品视频| 2018中文字幕一区二区三区| 精品中文字幕在线观看| 另类专区欧美制服同性| 国产女精品视频网站免费| 日韩精品福利网站| 中日韩美女免费视频网站在线观看| 亚洲精品自拍第一页| 久久九九国产精品怡红院| 日韩美女视频在线观看| 色综合天天狠天天透天天伊人| 成人激情黄色网| 永久免费毛片在线播放不卡| 日韩免费观看高清| 在线观看日韩欧美| 精品成人乱色一区二区| 最近2019中文字幕大全第二页| 亚洲精品一区中文| 国产精品久久不能| 成人黄色免费网站在线观看| 最新的欧美黄色| 国产区精品视频| 欧美性xxxxx极品娇小| 色久欧美在线视频观看| 亚洲国产日韩欧美在线图片| 亚洲成av人片在线观看香蕉| 九九精品在线视频| 亚洲国产精品久久久久| 亚洲曰本av电影| 国产亚洲欧洲高清| 欧美日本精品在线| 国产成人精品一区二区| 日韩免费在线免费观看| 亚洲午夜精品久久久久久久久久久久| 欧美亚洲在线视频| 日韩av电影中文字幕| 另类专区欧美制服同性| 成人精品在线观看| 国产成人在线一区| 国产suv精品一区二区三区88区| 亚洲欧美日韩精品久久奇米色影视| 日韩美女视频免费在线观看| 亚洲级视频在线观看免费1级| 久久精品视频中文字幕| 国产精品久久色| 亚洲淫片在线视频| 国产精品一区二区三区毛片淫片| 欧美日韩裸体免费视频| 91精品国产一区| 欧美在线中文字幕| 最好看的2019的中文字幕视频| 激情懂色av一区av二区av| 日韩欧美一区二区三区| 欧美成人自拍视频| xxx一区二区| 美女精品久久久| 一区二区三区视频观看| 国产主播精品在线| 国产精品中文久久久久久久| 日韩欧美高清视频| 2024亚洲男人天堂| 国产精品99久久久久久www| 少妇久久久久久| 日韩精品免费在线观看| 一本色道久久综合狠狠躁篇怎么玩| 日韩中文娱乐网| 亚洲精品午夜精品| 欧美国产乱视频| 曰本色欧美视频在线| 国产精品日日摸夜夜添夜夜av| 亚洲欧美一区二区三区情侣bbw| 91系列在线观看| 午夜精品福利电影| 91精品国产自产在线老师啪| 伊人伊成久久人综合网小说| 2018中文字幕一区二区三区| 国产一区二区三区在线播放免费观看| 欧美人与性动交a欧美精品| 亚洲午夜精品视频| 久久久久久久国产精品视频| 欧美另类在线播放| 亚洲人成电影在线播放| 91香蕉亚洲精品| 精品毛片三在线观看| 亚洲精品免费av| 在线观看国产成人av片| 久久男人资源视频| 欧美精品一区二区三区国产精品| 国产精品美乳在线观看| 亚洲iv一区二区三区| 欧美成人免费小视频| 欧美丝袜第一区| 久久99精品国产99久久6尤物| 久久免费成人精品视频| 久久噜噜噜精品国产亚洲综合| 欧美成人剧情片在线观看| 国产精品高潮呻吟久久av黑人| 国产一区二区在线免费视频| 欧美巨乳美女视频| 国产成人激情小视频| 亚洲精品第一国产综合精品| 国产一区二区欧美日韩| 成人欧美一区二区三区在线| 日韩av电影中文字幕| 97人人爽人人喊人人模波多| 国产精品视频在线观看| 久久久久久久激情视频| 国产不卡精品视男人的天堂| 国产va免费精品高清在线观看| 日本一区二区在线播放| 色综合91久久精品中文字幕| 成人黄色片在线| 日韩精品视频在线播放| 精品女厕一区二区三区| 亚洲精品国产欧美| 26uuu日韩精品一区二区| 亚洲性日韩精品一区二区| 亚洲精品中文字| 欧美另类极品videosbest最新版本| 2019中文字幕免费视频| www.xxxx欧美| 日韩亚洲国产中文字幕| 精品av在线播放| 精品丝袜一区二区三区|