[開發筆記] 如何使用 crontab 自動異地備份 mysql 至 AWS S3


如果你的mysql資料庫不是使用RDS的服務,而是自己架設在EC2上的Instance的話。可以使用AMS S3來做異地備份,這樣你的Instance如果突然掛掉,也不用怕

安裝s3cmd


首先要先安裝s3cmd,讓你可以使用command line 直接操作S3,安裝方法參考:
http://s3tools.org/repositories

安裝好後要設定 Access key 和 Secret key

s3cmd --configure

更多指令請參考
http://s3tools.org/s3cmd


接著新增一個用來放mysql 備份檔的bucket

s3cmd mb s3://mysql_backup

撰寫指令

新開一個指令檔backup_command,內容如下:

mysqldump -u DB_USER -pDB_PASSWORD DB_NAME > /backup_folder/backup_`date '+%Y_%m_%d'`.sql
s3cmd put /backup_folder/backup_`date '+%Y_%m_%d'`.sql s3://mysql_backup/backup_`date '+%Y_%m_%d'`.sql 
此指令是備份mysql的DB到local後,再丟上s3的指令

撰寫Crontab

執行 crontab -e ,接著在檔案中寫下

0 3 * * * sh backup_command

就會在每天的凌晨三點執行備份的動作了

打完收工!

Form on github: https://github.com/eugg/backup-mysql-to-S3

我的這個版本有點偷懶,如果你想使用比較完整的bash指令,請參考
https://gist.github.com/oodavid/2206527

分享到 Google+

作者資訊

eugene
王佑哲 Eugene Wang,創業者、工程師、部落客,Inside網路趨勢共同創辦人,現為貝殼放大營運長

1 回應: