新浪云下的SAE自動備份

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容