def get(self, request, *args, **kwargs): from sae.deferredjob import MySQLExport, DeferredJob from sae.storage import Bucket as SBucket import time import datetime export_bucket = 'xkongbackup' bucket = SBucket(export_bucket) now = time.strftime('%Y_%m_%d_%H_%M_%S') filename = 'app_ninan_%s.zip' % now deferred_job = DeferredJob() job = MySQLExport(export_bucket, filename, 'note_note', 'backends/backupsuccess/') deferred_job.add(job) resp = {'touch': filename} # Delete all files in this bucket created a month ago a_month_ago = datetime.datetime.now() - datetime.timedelta(days=30) for object_ in bucket.list(): last_modified = object_['last_modified'] if last_modified: mtime = datetime.datetime.strptime(last_modified, '%Y-%m-%dT%H:%M:%S.%f') else: continue if object_['content_type'] is not None and mtime < a_month_ago: bucket.delete_object(object_['name']) return self.render_to_response(resp)
def db_backup(request): # 判断是否是线上 from os import environ online = environ.get("APP_NAME", "") if online: from sae.deferredjob import MySQLExport, DeferredJob deferred_job = DeferredJob() today = datetime.datetime.now().strftime(r'%Y.%m.%d.%H.%M.%S') filename = '%s.backup.%s.zip' %(online,today) #用日期作为文件名,并.zip成压缩文件 job = MySQLExport('backups', filename,'') deferred_job.add(job) var = {} var['flag]']='true' var['online']=online var['filename']=filename return var else: return {}
def backup(): backup_time = datetime.now() time_str = backup_time.strftime('%Y-%m-%d-%H:%M:%S') # 文件名不能有空格,否则mysql导出报错 deferred_job = DeferredJob() notice = u'备份时间:%s<br>' % time_str # 添加备份任务并记录到数据库 filename = "{}.sql.zip".format(time_str) #table_name为空时表示备份整个数据库 job = MySQLExport(config.BACKUP_STORAGE_NAME, filename, '', '') job_id = deferred_job.add(job) notice += u'ID:%s, 文件名:%s<br>' % (job_id, filename) backup = BackUp(job_id=job_id, timestamp=backup_time, file_name=filename) db.session.add(backup) db.session.commit() notice = u'备份提交!<br>%s' % notice # 发送备份提交邮件 html_mail(config.BACKUP_TO_MAIL, 'xxx-数据库备份', notice, config.MAIL_SMTP) return notice
def backup(): backup_time = datetime.now() time_str = backup_time.strftime('%Y-%m-%d-%H:%M:%S') # 文件名不能有空格,否则mysql导出报错 deferred_job = DeferredJob() notice = u'备份时间:%s<br>' % time_str # 添加备份任务并记录到数据库 filename = "{}.sql.zip".format(time_str) #table_name为空时表示备份整个数据库 job = MySQLExport(config.BACKUP_STORAGE_NAME, filename, '', '') job_id = deferred_job.add(job) notice += u'ID:%s, 文件名:%s<br>' % (job_id, filename) backup = BackUp(job_id=job_id, timestamp=backup_time, file_name=filename) db.session.add(backup) db.session.commit() notice = u'备份提交!<br>%s' % notice # 发送备份提交邮件 html_mail(config.BACKUP_TO_MAIL, 'whwb-数据库备份', notice, config.MAIL_SMTP) return notice