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

Windows MySQL 自動備份批次腳本:支援多庫、分日期目錄、WinRAR 壓縮、排程部署

     編輯:MySQL 資料庫相關知識

功能特性

  • 支援多資料庫一次備份
  • 自動建立 年/月/日 三級目錄
  • 可選整合 WinRAR 壓縮加密
  • 配合 schtasks 實現系統級定時任務

核心備份腳本 cron_backup.bat

@echo off & setlocal ENABLEEXTENSIONS

:: ===== 配置區 =====
set BACKUP_PATH=D:\Backup\
set DATABASES=db1 db2 db3
set USERNAME=root
set PASSWORD=123456
set MYSQL=D:\SERVER\MySQL\bin\
set WINRAR=C:\Progra~1\WinRAR\Rar.exe
:: ==================

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

set DIR=%BACKUP_PATH%%YEAR%\%MONTH%\%DAY%\
set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%

if not exist %DIR% mkdir %DIR% 2>nul
cd /d %DIR%

echo Start dump databases...
for %%D in (%DATABASES%) do (
  echo Dumping database %%D ...
  %MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul
  if exist %WINRAR% (
    %WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul
    del /F /S /Q %%D.%ADDON%.sql 2>nul
  )
)
echo Done.

排程部署腳本 cron_backup_add.bat

@echo off
set FILE=D:\cron\cron_backup.bat
set FREQUENCY=DAILY
set MODIFIER=1
set DATETIME=00:30:00
set NAME="Backup Cron Job"
set USER="System"

schtasks /Create /RU %USER% /SC %FREQUENCY% /MO %MODIFIER% /ST %DATETIME% /TN %NAME% /TR %FILE%
pause

排程頻率對照表

類型MODIFIER 範圍
MINUTE1~1439
HOURLY1~23
DAILY1~365
WEEKLY1~52
MONTHLY1~12 或 FIRST/SECOND/THIRD/FOURTH/LAST/LASTDAY

部署步驟

  1. 將兩段碼分別存為 cron_backup.bat、cron_backup_add.bat,修改配置區參數。
  2. 以管理員身分執行 cron_backup_add.bat 寫入排程。
  3. 控制台 → 系統與安全性 → 系統管理工具 → 工作排程器 驗證任務存在。
  4. 手動執行一次任務,檢查備份目錄確認成功。

待優化項目

  • 新增保留天數自動清理舊備份。
  • 支援差異/增量備份。
  • 加入備份驗證(Checksum)與失敗告警。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved