#WI Rapids DNR Fire Situations Unit backup script
#To be executed by double-clicking the file in the incident folder on Buffy
#(Buffy is a TeraStation portable file server)
#Will endlessly repeat, kill it by closing the window
#Tyler Grosshuesch - tyler.grosshuesch@co.adams.wi.us
#2011-04-13
import time, os, fnmatch, shutil
#Endless loop
while 1:
#set up timestamp
t = time.localtime()
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
#buffy backup directory with timestamp
bu_dir = os.path.join(r'.\Folder_Backup', timestamp)
#set up local backup directory
proj_dir = os.getcwd()
local_dir = os.path.join(r'C:\Share', os.path.basename(proj_dir))
#set up mkdir Folder_Backup\timestamp command
mkdir_cmd = r'mkdir ' + bu_dir
#execute mkdir Folder_Backup\timestamp
os.system(mkdir_cmd)
#Copy files to Folder_Backup\timestamp directory on Buffy
for d in os.listdir(proj_dir):
if not fnmatch.fnmatch(d, '*Folder_Backup*'): #don't backup Folder_Backup
#backup directories and subdirectories
if os.path.isdir(d):
print 'backing up ' + d
shutil.copytree(d, os.path.join(bu_dir, d))
#backup loose files in the project directory
else:
print 'backing up ' + d
shutil.copy(d, os.path.join(bu_dir, d))
#copy shell command - entire project folder to ranger mapper's local
copy_c_cmd = r'xcopy . ' + local_dir + ' /D /E /Y /C'
#execute shell commands
mkdir_c_cmd = 'mkdir ' + local_dir
if not os.path.exists(local_dir):
os.system(mkdir_c_cmd)
os.system(copy_c_cmd)
#timer - repeats every 10 min
print 'waiting to copy backup files...'
time.sleep(600) #units = seconds (10min = 600s, 30min = 1800s)