I did it. And I am quite proud of it. Even though its not perfect... the concept is pretty rad.
Things you will need.
- Python [Modules] - wmi, shutil, os, sys, winpaths(optional....)
- TaskScheduler
- USB or SD card, need to change its name to eBackup, instead of "Removable Disk"
- have a scheduled task run when the system is on idle...
- only runs when a drive is present that is labeled eBackup
- copy directories, specified in a cfg file.
'''I hope this has either inspired you or saved your data. Enjoy!
Created on Apr 30, 2012
@author: rcummins
'''
import wmi
import shutil
import os
import winpaths
import sys
def getDrive(computer=None):
c = wmi.WMI(computer)
host_info = c.Win32_LogicalDisk(VolumeName='EBACKUP')
return host_info[0].Name
def fileChange(source):
drive = getDrive()
for dirs in os.listdir(source):
path = source+'\\'+dirs
dest = path.replace("C:\\", drive[0]+":\\")
if os.path.getmtime(dest) - os.path.getmtime(path) < 0:
shutil.copytree(path, dest)
if __name__ == '__main__':
computer = ''
logfile = ''
x = getDrive(computer)
try:
logfile = str(sys.argv[1]).strip()
except:
logfile = 'eBrake.cfg'
if os.path.exists(logfile):
f = open(logfile,'r')
for q in f.readlines():
source = q.strip()
for(path, dirs, files) in os.walk(source):
for filez in files:
src = os.path.join(path, filez)
dst = str(os.path.join(path, filez)).replace("C:\\",x[0]+":\\")
if str(src).find(".metadata") < 0:
try:
if os.path.getmtime(dst) - os.path.getmtime(src) < 0:
print "Overwriting >> " + dst
shutil.copy(src, dst)
except:
print "Created: " + dst
if not os.path.exists(dst): os.makedirs(dst)
try:
shutil.copytree(src, dst)
except: shutil.copy(src, dst)
else:
print "Create file: %s \n\n Enter paths to backup on SD card\n\ncard needs to be named 'EBACKUP'"%(logfile)
pass
No comments:
Post a Comment