小弟才疏學淺,讓大家見笑,不足之處請大家多多指教!原理是通過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,有問題希望大家指正!