/usr/local/mysql/var/.../var/web/bx9/home/bx9_bak/ftp://ftp.back.com/bx9_bak,帳號 bx9,密碼 bx9123mysqlautobak#!/bin/sh
# 線上備份 MySQL 資料庫
rq=$(date +%y%m%d)
# 1. 邏輯備份並壓縮
mysqldump 資料庫名稱 -uroot -p123456 | gzip > /home/bx9_bak/資料庫名稱$rq.sql.gz
# 2. 打包 Web 目錄
tar -czPf /home/bx9_bak/bx9$rq.tar.gz /var/web/bx9
# 3. FTP 上傳
ftp -ni ftp://ftp.back.com <
注意:請務必修改腳本中的資料庫名稱、MySQL root 密碼、FTP 憑證等敏感資訊。
chmod +x mysqlautobak./mysqlautobak,確認本地檔案生成、FTP 上傳成功。crontab:0 3 * * * /etc/mysqlautobak因 mysqldump 輸出完整 SQL,還原極簡單:
# 建立目標資料庫
mysqladmin create 目標資料庫
# 導入備份
mysql 目標資料庫 < 備份檔.sql
# 若備份檔為 .gz,先解壓:gzip -d 備份檔.sql.gz
rem 設定路徑
set path=%path%;C:\Program Files\cwRsync\bin
rem 執行同步(從遠端 192.1.1.13 拉取至本地 D:\backdir)
rsync -vzrtopg --progress --delete yongli@192.1.1.13::bx82 /cygdrive/d/backdir
Windows 路徑在 rsync 中以 /cygdrive/盤符/路徑 表示,其餘參數與 Linux 相同。
.my.cnf 或環境變數注入。