window定时备份MySQL数据库,默认备份7天,一小时备份一次

@echo off
setlocal

rem 在Windows中添加任务计划以执行批处理脚本,请按照以下步骤操作:

rem 打开Windows的“任务计划程序”应用程序。你可以通过按下Win + R键,在运行对话框中输入taskschd.msc,然后按回车键来打开它。

rem 在任务计划程序窗口中,点击“创建基本任务”或“创建任务”(取决于你的Windows版本)。

rem 输入一个名称和描述以标识你的任务。

rem 在“触发器”选项卡上,点击“新建”来创建一个新的触发器。选择适当的计划(一次、每天、每周等),并设置触发任务的日期和时间。

rem 在“操作”选项卡上,点击“新建”来创建一个新的操作。在“程序/脚本”字段中,指定要执行的批处理脚本的完整路径。

rem 在“条件”选项卡和“设置”选项卡上,按照你的喜好进行其他设置。

rem 点击“确定”来保存任务计划。

rem 设置完成后,任务计划程序将在指定的日期和时间自动运行你的批处理脚本。你可以在任务计划程序中查看和管理你的任务。

REM 设置数据库连接信息

set "localhost_name=localhost"
set "username=root"
set "database_name=localhost"
set "mypassword=root"

REM 设置最大备份文件数量
set "max_backup_files=7*24"

REM 设置最大备份文件天数
set "max_backup_files_date=7"

set "backup_dir=D:\backup"
set "YYYY=%date:~0,4%"
set "MM=%date:~5,2%"
set "DD=%date:~8,2%"

set "HH=%time:~0,2%"
set "NN=%time:~3,2%"
set "SS=%time:~6,2%"

set "datetime=%YYYY%%MM%%DD%%HH%%NN%%SS%"
set "backup_file=%backup_dir%\%database_name%-%datetime%.sql"

set "log_file=%backup_dir%\backup.log"
set "error_message=Backup failed at %datetime%"
set "success_message=Backup successful at %datetime%"


echo Starting backup at %datetime% >> "%log_file%"

mysqldump -h "%localhost_name%" -u "%username%" --password="%mypassword%" --all-databases > "%backup_file%"

rem 删除7天之前的备份文件
forfiles /p "%backup_dir%" /s /m %database_name%-*.sql /d -%max_backup_files_date% /c "cmd /c del /q @path"

rem 限制备份文件的个数,删除最早的文件

setlocal enabledelayedexpansion
for /F "skip=%max_backup_files% delims=" %%F in ('dir /B /O:D "%backup_dir%\%database_name%*.sql"') do (
    set "file_to_delete=%backup_dir%\%%F"
    echo Deleting old backup: !file_to_delete!
    del "!file_to_delete!"
)

if %errorlevel% neq 0 (
    echo %error_message% >> "%log_file%"
) else (
    echo %success_message% >> "%log_file%"
)

echo Backup completed.

endlocal

windows计划任务添加bat脚本

猜你喜欢

转载自blog.csdn.net/lizhihua0625/article/details/132478693