萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 全庫自動備份腳本:導出、壓縮、按日期存放

一個可直接投入生產的 Bash 腳本,自動遍歷所有資料庫,逐庫 mysqldump 並 gzip 壓縮,按日期建立目錄存放,支援配置備份路徑、帳號密碼。

腳本內容 (backup_mysql.sh)

#!/bin/bash
############################################
# MySQL 全庫備份腳本
# 每庫導出並 gzip 壓縮存放
# 2013/05/08
############################################

# 備份根目錄
backdir=/home/shaowei/dbbak
# 資料庫帳號密碼
dbuser='dbusername'
dbpass='dbpasswd'
# 資料庫目錄 (通常 /var/lib/mysql)
dblist=$(ls -p /var/lib/mysql | grep / | tr -d /)

today=$(date +%Y%m%d)
mkdir -p $backdir/$today

for dbname in $dblist; do
    mysqldump -u$dbuser -p$dbpass $dbname | gzip -v > $backdir/$today/$dbname-$today.sql.gz
    echo "$dbname OK"
done

使用建議

  • 將腳本加入 crontab 定時執行 (如每天凌晨 2 點)。
  • 生產環境建議從從庫備份,避免主庫鎖表影響業務。
  • 定期驗證備份檔案完整性與可還原性。
copyright © 萬盛學電腦網 all rights reserved