記錄一次腳本誤刪文件後恢復

定期移動某目錄下超過30天的文件,腳本內容如下

# -*-coding:utf-8-*-

import os
import sys
import time
import shutil

backupdir="/data/backup/images/%s"%(time.strftime("%Y-%m-%d",time.localtime()))
bday=2592000
path='/data/images/log'
if os.path.exists(backupdir) is False:
  os.makedirs(backupdir)

cday=int(time.time())

for i in os.walk(path):
  # 判斷目錄是否爲空,且創建時間大於 bday
  if i[1] == [] and i [2] == [] and (cday - int(os.stat(i[0]).st_mtime)) > bday:
      print "刪除空目錄:  %s"%(str(i[0]))
      os.rmdir(i[0])
  else:
      for j in  i[2]:
          # 判斷大於 bday 的文件
          if (cday - int(os.stat(i[0]+'/'+j).st_mtime)) > bday:
              print "移動文件:  %s"%(str(i[0]+'/'+j))
              shutil.move(str(i[0]+'/'+j),backupdir+'/'+j)

當腳本執行一半的時候發現目錄配置錯誤,馬上CTRL + C 結束腳本
刪除腳本輸出如下:

移動文件:  /xx/xx/xx/xx/xx/xx/xx/xx/xxxxxx.zip

將刪除腳本輸出內容複製到/data/bin/de文件中
編寫恢復腳本

# -*-coding:utf-8-*-

import shutil

with open('/data/bin/de', 'r') as f:
  file = f.readlines()

for i in  file:
  FilePath = i.replace("\n", "").replace("\r","")
  FileName = path.split('/')[-1]
  print fil , path
  try:
    shutil.copy('/data/backup/images/xxxx/%s'%(FileName),FilePath)
  except:
    pass
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章