新浪云下的SAE自动备份

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

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

2、在你的网站中任意目录下新建一个PHP,命名为databackup.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自动备份)