Gmail 目前有 7GB 的使用空間且不斷增長中,非常適合拿來做資料的備份,特別是小資料庫的定時備份。因此我找了一個資料庫的備份程式 MySqlDump,再加上 PHPMailer 的寄送附件功能,就完成了一個可以透過 crontab 定時備份資料庫到 Gmail 的程式(其實當然不限 Gmail,任何 Email 都可以)。有需要的人請透過本篇的附件進行下載。
設定的部份請開啟 mysqldump.php 編輯以下內容:- $secret = 'secretcode';
- $from = 'your.email@maildomain.com';
- $from_name = 'AutoBackup';
- $to = 'your.email@maildomain.com';
- $to_name = 'Your Name';
- $dir = '/home/user/public_html/backup/';
$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';
$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,就變成第二組的備份,依此類推。 |