首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

定期備份MySQL數據庫Shell腳本:全量/增量、FTP上傳、自動清理

     編輯:MySQL 資料庫相關知識

腳本核心功能

  • 每日增量備份,週日(可配置FULLBACKUP=7)全量備份
  • 備份文件gzip壓縮,按日期命名
  • 自動上傳FTP(增量/全量分目錄)
  • 本地臨時目錄/tmp/backup.$$(PID防衝突)
  • 郵件通知EMAILID

關鍵配置段

### System Setup ###
DIRS="/home/xxxx"           # 本地需全量備份的目錄
BACKUP=/tmp/backup.$$
NOW=$(date +"%Y-%m-%d")
DAY=$(date +"%u")           # 1-7 對應 周一-周日
FULLBACKUP="7"              # 週日全量

### MySQL Setup ###
MUSER="chaos"
MPASS="password"
MHOST="host"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### FTP Setup ###
FTPD="/backup/xxxx/incremental"  # 增量遠程目錄
FTPU="chaos"
FTPP="password"
FTPS="xxx.xxx.com"

執行流程

  1. 建立本地臨時備份目錄
  2. 判斷$DAY == $FULLBACKUP切換遠程目錄到/backup/xxxx/full
  3. mysqldump導出 → gzip壓縮 → ftp -n上傳
  4. 本地文件清理(腳本未完全展示,建議加find -mtime +7 -delete)

部署建議

  • 腳本存/opt/scripts/mysql_backup.sh,chmod +x
  • crontab -e添加:0 3 * * * /opt/scripts/mysql_backup.sh >/dev/null 2>&1(每天凌晨3點)
  • **必須測試FTP連通性、磁盤空間、郵件告警**
  • 生產環境建議加set -euo pipefail、日誌輸出、錯誤重試邏輯

核心價值

**備份落地異地(FTP)**,單機故障也能恢復;全量/增量結合平衡空間與RPO;腳本化納入基礎設施代碼管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved