I automated my disk backups, but I kept having to delete the extra backup files manually so I wouldn't run out of space. I decided I needed to automate that task as well.
Add the following Python script to a task so it will run automatically.
Python script:
import os
import datetime
import fnmatch
dir_to_search = "[full path to backup directory]"
for dirpath, dirnames, filenames in os.walk(dir_to_search):
intCountOfTotalBackups = len(fnmatch.filter(filenames, '[Backup name, same as the Macrium XML file]*-00-00.mrimg'))
print "Total Backups: " + str(intCountOfTotalBackups)
intCountOfBackupsToDelete = 0
for file in fnmatch.filter(filenames, '[Backup name, same as the Macrium XML file]*-00-00.mrimg'):
curpath = os.path.join(dirpath, file)
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
#keep a weeks worth of backups
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=168):
intCountOfBackupsToDelete += 1
print intCountOfBackupsToDelete
#always keep at least a few backups, even if they are old.
if intCountOfBackupsToDelete < (intCountOfTotalBackups - 4):
print str(intCountOfBackupsToDelete) + ' < ' + str(intCountOfTotalBackups - 4)
for file in fnmatch.filter(filenames, 'Atom_Nightly*-00-00.mrimg'):
curpath = os.path.join(dirpath, file)
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=168):
os.remove(curpath)
print "remove " + curpath
#input("Press Enter to continue...")
No comments:
Post a Comment