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