使用sae的storage服务来自动保存数据库文件

自己写了一个简单的脚本,可以在服务器上面将小站的数据库每天做备份,然后可以使用python来通过访问url来保存到本地,今天无聊想起了好久未动过的sae了,想着试试sae的服务来将数据库文件保存到storage中.下面分享给大家过程.
首先,你要在sae上面部署python应用.这个我就不说了,Google一下一大堆教程.
然后就是部署代码,然后修改index.wsgi文件为下面的代码

import sae
from sae.storage import Bucket
import urllib2 
import smtplib
import time
from email.message import Message
import email.utils
import base64


correct_time = time.strftime('%m_%d_%H_%M_%S',time.localtime(time.time()))
url = "xxxxxxxxxxxxx"这个修改成你的数据库文件的地址

def send_email(file_url):
    smtpserver = 'smtp.gmail.com'
    #这儿大家都能看懂吧,修改成你自己的.
    username = 'ooooooo'
    password = 'xxxxxxxxxx'
    from_addr = 'ffffffff@gmail.com'
    to_addr = 'tttttttt@gmail.com'
    message = Message()
    message['Subject'] = 'Sql Data Backup'
    message['From'] = from_addr
    message['To'] = to_addr
    message.set_payload('Sql Data Backup OK at '+correct_time + ' url is  '+file_url)
    msg = message.as_string()
    sm = smtplib.SMTP(smtpserver,port=587,timeout=20)
    sm.ehlo()
    sm.starttls()
    sm.ehlo()
    sm.login(username, password)
    sm.sendmail(from_addr, to_addr, msg)
    sm.quit()  

def checktest():
    bucket = Bucket('sssssss') #修改成你自己的storage名
    bucket.put()
    bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn', metadata={'expires': '1d'})
    f = urllib2.urlopen(url)
    data = f.read()
    bucket.put_object(correct_time+".sql", data)
    file_url = bucket.generate_url(correct_time+".sql")
    return file_url
def app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/html; charset=utf-8')]
    start_response(status, response_headers)
    file_url = checktest()
    send_email(file_url)
    
    return ['<strong>Welcome to SAE!</strong>']


application = sae.create_wsgi_app(app)

说明下主要是先获得数据库文件,然后按照日期格式保存,之后保存在storage中,然后通过发送sql文件地址到邮件来提醒.
发送邮件在python smtplib和email模块有详细说明.
最后修改config.yaml文件,添加下面的代码段

cron:
- description: cron_test
  url: /
  schedule: "1 1 * * *"

意思就是在每天都1点1分来运行这个任务.
好了,就是这么多,其实我也对sae是一窍不通,最近有时间才偶尔看看的.分享出来,希望对大家有所帮助.

使用sae的storage服务来自动保存数据库文件》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注