Board logo

標題: [PHP] 自動備份 MySQL 到 Gmail [打印本頁]

作者: wmh    時間: 2008-10-11 20:23     標題: [PHP] 自動備份 MySQL 到 Gmail

Gmail 目前有 7GB 的使用空間且不斷增長中,非常適合拿來做資料的備份,特別是小資料庫的定時備份。因此我找了一個資料庫的備份程式 MySqlDump,再加上 PHPMailer 的寄送附件功能,就完成了一個可以透過 crontab 定時備份資料庫到 Gmail 的程式(其實當然不限 Gmail,任何 Email 都可以)。有需要的人請透過本篇的附件進行下載。

設定的部份請開啟 mysqldump.php 編輯以下內容:
$secret       = 'secretcode';                     //密碼,執行時需帶入
$from         = 'your.email@maildomain.com';      //備份時使用的寄件者 email
$from_name    = 'AutoBackup';                     //寄件者姓名
$to           = 'your.email@maildomain.com';      //收件者 email
$to_name      = 'Your Name';                      //收件者姓名
$dir          = '/home/user/public_html/backup/'; //備份檔案存放的目錄
以下是第一組資料庫的設定:
$cfg[0]['dbhost']       = 'localhost';
$cfg[0]['dbuser']       = 'root';
$cfg[0]['dbpass']       = 'pass';
$cfg[0]['dbname']       = 'my_database1';
設定完成後,可先透過瀏覽器測試,例如:
http://jsgears.com/path_to_the_script/mysqldump.php?dbid=0-code=secretcode
其中 dbid=0 表示第一組資料庫,後面的 code=secretcode 就是先前設定的密碼。執行成功的話,很快就可以收到 email 並且看到備份的附加檔喔。

如果要定時備份的話,就透過 crontab 吧,例如以下設定可在每天凌晨 3:00 進行備份:
0 3 * * * wget http://jsgears.com/mysqldump.php?dbid=0-code=secretcode
以上是一組資料庫的備份設定,如果有需要新增第二組、第三組...,可參考 mysqldump.php 內的說明,將 $cfg[1] 的設置開啟,完成設定後,執行時將 dbid=0 改成 dbid=1,就變成第二組的備份,依此類推。
作者: ReadOnly    時間: 2009-1-21 20:49

为什么下载不了呢?
作者: wmh    時間: 2009-1-21 21:03

可能是最近更新主機時有漏了地方導致無法下載,已經更新檔案囉。
作者: slanla    時間: 2009-3-8 04:55

厲害!!
太感謝了~~
終於可以讓server自動備份魯
作者: yugo_fruity    時間: 2009-12-23 14:48

雖然是個php生手,但好像都看得懂
謝謝大大分享這麼厲害的東西
作者: saladin919    時間: 2009-12-31 16:31

我想請問

$dir          = '/home/user/public_html/backup/';

這邊的路徑是指?

我是的結果,信箱都是顯示
Unable to open /RaidenMAILD/Backup/boss_20091231_162443.sql.gz for writing.
作者: wmh    時間: 2009-12-31 17:17

回復 6# saladin919

那個是備份檔儲存的目錄,要放完整路徑比較保險,確認目錄有存在且要有寫入的權限才行。
作者: mamameia    時間: 2011-11-24 21:43

相當方便的工具,而且設定很簡單 感謝分享喔!
作者: carlkyo    時間: 2015-7-9 11:43

好像不錯用的樣子
謝謝了
作者: pix756    時間: 2018-2-12 11:09

超實用的教學,謝謝




歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/)