Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux crontab 定時備份 MySQL 資料庫:每日自動打包/匯出、按日期命名、服務重啟驗證

編輯:XP 系統基礎知識

利用系統內建 crontab 排程,搭配 tar 或 mysqldump,實現 MySQL 每日自動備份、按日期命名、舊檔自行清理(可另寫腳本)。

部署步驟

  1. 建立備份目錄
    mkdir -p /mysqldata
  2. 建立備份腳本 /usr/sbin/bakmysql
    #!/bin/bash
    rq=$(date +%Y%m%d)
    # 方式 A:直接打包 datadir(需停庫或鎖表)
    tar zcvf /mysqldata/mysql${rq}.tar.gz /var/lib/mysql
    # 方式 B:邏輯備份(不停庫,適合 InnoDB)
    # mysqldump --all-databases -u root -p'YourPassword' > /mysqldata/mysql${rq}.sql
    

    注意:/var/lib/mysql 視安裝路徑調整(如 /usr/local/mysql/data)。

  3. 賦予執行權限
    chmod +x /usr/sbin/bakmysql
  4. 編輯 /etc/crontab 加入排程
    01 3 * * * root /usr/sbin/bakmysql
    (每天 03:01 執行)
  5. 重啟 cron 服務
    /etc/rc.d/init.d/crond restart(或 systemctl restart crond)

關鍵提醒

備份前務必停止 MySQL 或執行 FLUSH TABLES WITH READ LOCK,否則直接打包資料檔極易導致備份不一致,還原時資料庫損壞甚至無法修復。

進階建議

  • 備份腳本加入 find /mysqldata -mtime +7 -delete 自動刪除 7 天前舊檔。
  • 將備份檔同步至異地存儲(rsync、scp、雲端儲存)。
  • 定期演練還原流程,驗證備份可用性。
Copyright © Windows教程網 All Rights Reserved