mkdir -p /www/backup
/www/autobackup#!/bin/bash
FILENAME=$(date +%Y%m%d)
/usr/local/mysql/bin/mysqldump --opt 數據庫名 -u用戶 -p密碼 | gzip > /www/backup/前綴_${FILENAME}.gz
參數說明:
--opt:啟用快速導出優化(含 --add-drop-table, --extended-insert 等)。gzip:管道壓縮,節省磁盤空間。chmod +x /www/autobackup
通用法(編輯 /etc/crontab):
01 5 * * * root /www/autobackup
# 每天 05:01 執行,可修改時間
RedHat/CentOS 目錄法:
cp /www/autobackup /etc/cron.daily/ # 每天執行
# 或 /etc/cron.weekly/ (每周)、/etc/cron.monthly/ (每月)
/etc/rc.d/init.d/crond restart
# 或 systemctl restart crond
mysqldump。scp/rsync 至異地存儲。find /www/backup -mtime +30 -delete 刪除 30 天前舊備份。--master-data=2 記錄 Binlog 位置,支持時間點恢復(PITR)。--defaults-extra-file 指向受保護的 .my.cnf。mysqldump 耗時長、鎖表久,考慮 --single-transaction (InnoDB) 或物理備份工具 xtrabackup。