小弟才疏学浅,让大家见笑,不足之处请大家多多指教!原理是通过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,有问题希望大家指正!