功能特性
- 支援多資料庫一次備份
- 自動建立
年/月/日 三級目錄
- 可選整合 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 範圍 |
| MINUTE | 1~1439 |
| HOURLY | 1~23 |
| DAILY | 1~365 |
| WEEKLY | 1~52 |
| MONTHLY | 1~12 或 FIRST/SECOND/THIRD/FOURTH/LAST/LASTDAY |
部署步驟
- 將兩段碼分別存為
cron_backup.bat、cron_backup_add.bat,修改配置區參數。
- 以管理員身分執行
cron_backup_add.bat 寫入排程。
- 控制台 → 系統與安全性 → 系統管理工具 → 工作排程器 驗證任務存在。
- 手動執行一次任務,檢查備份目錄確認成功。
待優化項目
- 新增保留天數自動清理舊備份。
- 支援差異/增量備份。
- 加入備份驗證(Checksum)與失敗告警。