如何在 Ubuntu 系統中設置定期備份 MySQL 資料庫並且同步到 Amazon S3 ?


前言

最近設置了一個新的部落格,但我尚未設定定期備份資料庫。如果主機出現問題,我的所有資料都可能會消失。這是一個巨大的風險,因此這邊紀錄一下我設定的步驟。

步驟 1: 安裝 AWS CLI 工具

因為會同步至 Amazon S3 ,所以這邊先安裝 AWS CLI 工具,方便將檔案上傳至 S3 空間

  1. 安裝 AWS CLI 工具。你可以參考 AWS 官方文檔進行安裝
  2. 配置 AWS CLI 工具,使用 aws configure 命令,輸入你的 AWS 存取金鑰、區域等信息。

步驟 2: 建立備份腳本

在你的 Ubuntu 伺服器上建立一個 shell 腳本,用於執行 MySQL 備份並將其上傳至 S3。

#!/bin/bash

# 定義 MySQL 連接參數
DB_USER="your_mysql_username"
DB_PASS="your_mysql_password"
DB_NAME="your_database_name"

# 定義備份文件名稱
DATE=$(date +%Y%m%d-%H%M%S)
BACKUP_FILE="/path/to/backup/directory/backup-$DATE.sql"

# 備份 MySQL 資料庫
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE

# 上傳至 Amazon S3
aws s3 cp $BACKUP_FILE s3://your-s3-bucket-name/

請替換腳本中的

your_mysql_username your_mysql_password your_database_name /path/to/backup/directoryyour-s3-bucket-name 為你的 MySQL 連接資訊、本地備份目錄和 S3 存儲桶名稱。

步驟 3: 設置定期任務

使用 crontab 設置定期執行備份腳本。

  1. 打開 crontab 編輯器:crontab -e
  2. 在文件末尾添加以下行,用於每天定時執行備份腳本:

0 0 * * * /bin/bash /path/to/your/backup/script.sh

這樣將會在每天的午夜 12 點執行備份。

注意事項:

  • 請確保腳本的執行權限是可執行的:chmod +x /path/to/your/backup/script.sh
  • 請確保 AWS CLI 配置了正確的存取權限,以便於上傳至 S3。
  • 建議設置定期備份以確保資料的安全性,可以根據需求調整 crontab 中的時間。

完成上述步驟後,你的 MySQL 資料庫就會定期備份並上傳至 Amazon S3 存儲桶。