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

MySQL 自動化備份腳本實作(含本地與 FTP 異地)

     編輯:MySQL 資料庫相關知識

需求場景

  • 資料庫目錄:/usr/local/mysql/var/...
  • Web 目錄:/var/web/bx9
  • 本地備份路徑:/home/bx9_bak/
  • 遠端 FTP:ftp://ftp.back.com/bx9_bak,帳號 bx9,密碼 bx9123
  • 排程:每天 03:00 執行

備份腳本 mysqlautobak

#!/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 憑證等敏感資訊。

部署與排程

  1. 賦予執行權限:chmod +x mysqlautobak
  2. 測試執行:./mysqlautobak,確認本地檔案生成、FTP 上傳成功。
  3. 加入 crontab:
    0 3 * * * /etc/mysqlautobak

還原操作

因 mysqldump 輸出完整 SQL,還原極簡單:

# 建立目標資料庫
mysqladmin create 目標資料庫
# 導入備份
mysql 目標資料庫 < 備份檔.sql
# 若備份檔為 .gz,先解壓:gzip -d 備份檔.sql.gz

Windows 環境下的 rsync 鏡像備份

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 或環境變數注入。
  • 定期驗證備份檔完整性與可還原性。
  • 異地備份應採用加密傳輸(SFTP/FTPS)或 VPN 通道。
  • 設定備份檔保留策略,避免磁碟塞滿。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved