美文网首页
新浪云下的SAE自动备份

新浪云下的SAE自动备份

作者: 旅行家John | 来源:发表于2017-01-02 15:18 被阅读36次

    小弟才疏学浅,让大家见笑,不足之处请大家多多指教!原理是通过Cron定时执行SaeDeferredJob中的export命令来备份数据库,其实蛮 简单的,所以这次恢复到6.5日时,我竟然从我备份数据中找回了6.5至今天删除了的数据,呵呵。所以来和大家分享下,希望能对大家有点用处。

    1、在你的创建一个新的Storage存储,命名为databackup。

    2、在你的网站中任意目录下新建一个PHP,命名为databackup.php,内容:

    PHP代码

    <?php

    $StorageName='databackup';//Storage存储空间名称

    $DataPath=date('Y').'/'.date('m').'/'.date('Y-m-d.H:i:s').'.sql.zip';//按年/月目录存储

    $Storage=newSaeStorage();

    $StorageAttr=array('private'=>false);//设置存储空间为公有

    $Storage->setDomainAttr($StorageName,$StorageAttr);

    $DeferredJob=newSaeDeferredJob();

    $TaskID=$DeferredJob->addTask('export','mysql',$StorageName,$DataPath,SAE_MYSQL_DB,'','');//备份数据库

    if($TaskID){

    echo"RUN:Success";//备份成功输出

    }

    else{

    send_mail('邮箱地址','数据库备份失败','数据库备份失败!
    错误代码:'.$DeferredJob->errno().'
    错误消息:'.$DeferredJob->errmsg().'
    报告时间:'.date('Y-m-d H:i:s'));

    echo'RUN:Failure';//备份失败输出

    }

    $StorageAttr=array('private'=>true);//设置存储空间为私有

    $Storage->setDomainAttr($StorageName,$StorageAttr);

    ?>

    3、在根目录config.yaml文件中添加一个定时任务:

    PHP代码

    cron:

    - description: Database Backup

    url: /目录名称/databackup.php

    schedule: every day of month 04:00

    你可以修改04:00为你需要备份的时间,如every day of month 04:00为每天凌晨4点备份,every day of month 01:00为每天凌晨1点备份

    不知道写的还可以通过Cron 配置生成工具生成:http://saetools.sinaapp.com/cron.html

    希望对大家有用!我微博Giteen,有问题希望大家指正!

    相关文章

      网友评论

          本文标题:新浪云下的SAE自动备份

          本文链接:https://www.haomeiwen.com/subject/ezmwvttx.html