Revision: 57201
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 21, 2012 18:50 by dugo
Initial Code
#!/usr/bin/env python import sys,boto,os,time from boto.s3.key import Key import time from datetime import date,timedelta from settings import * ZIPFILE = os.path.join("/tmp/",str(date.today())+".tar.bz2") # print percent complete def percent_cb(complete, total): sys.stdout.write('.') sys.stdout.flush() # fileupload def upload(filename): print '-> Uploading %s...' % filename count =0 while True: try: conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) bucket = conn.get_bucket(AWS_STORAGE_BUCKET_NAME) k = Key(bucket) k.key = os.path.basename(filename) k.set_contents_from_filename(filename,cb=percent_cb, num_cb=10) return True except: print sys.exc_info() time.sleep(30) count+=1 if count>=10: break return False def make(): print "-> Backup BD..." print "-> Compress..." os.system("tar cvjf %s /etc/ /var/www/ /root/scripts/ /var/webapps/ --exclude=\"nod32-update\" --exclude=\"fermasa\"" % ZIPFILE) def clean_old(): print "-> Cleaning old backup..." yesterday = date.today() - timedelta(1) # one backup per week if (yesterday.isoweekday()%7) == 0: return count =0 while True: try: conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) bucket = conn.get_bucket(AWS_STORAGE_BUCKET_NAME) bucket.delete_key(str(yesterday)+".tar.bz2") break except: print sys.exc_info() time.sleep(30) count+=1 if count>=10: break def clean(): os.system("rm -vf %s" % ZIPFILE) def main(): try: make() if (upload(ZIPFILE)): clean_old() clean() except KeyboardInterrupt: os.system("rm -vf %s" % ZIPFILE) if __name__ == "__main__": main()
Initial URL
Initial Description
A script to make auto-backups to Amazon S3 using boto library
Initial Title
Amazon S3 backup
Initial Tags
Initial Language
Python