Windows系统Mysql数据库、文件夹自动备份

时间: 2023-11-14 admin 维修知识

Windows系统Mysql数据库、文件夹自动备份

Windows系统Mysql数据库、文件夹自动备份

一、批处理bat文件编写

批处理命令如下,使用时需要将相关参数修改为实际参数

@echo off
color 0a
chcp 65001::数据库备份文件及模型文件备份的根路径
SET BACKUP_DIR=Z:\backup
::**************************************配置MySQL数据库备份相关参数*******************************************************
::数据库主机名
SET MYSQL_HOST=XXXXX
::数据库用户名
SET MYSQL_USER=XXXXX
::数据库密码
SET MYSQL_PASSWORD=XXXXX
::数据库名称
SET DATABASE_NAME=XXXXX
::数据库备份文件有效时间,单位天,(此天数之前的数据库备份文件需要删除)
SET EFFECTIVE=30
::**************************************配置文件备份相关参数*******************************************************
::待备份的模型文件所在根目录
SET SOURCE_FILE_DIR=E:\XXXXX::**************************************创建备份文件夹*******************************************************
if exist %BACKUP_DIR%\backupdb (  rem 目录%BACKUP_DIR%\backupdb已存在,无需创建  echo 目录%BACKUP_DIR%\backupdb已存在无需创建         ) else (  rem 创建%BACKUP_DIR%\backupdbecho 创建%BACKUP_DIR%\backupdb md %BACKUP_DIR%\backupdb ) 
if exist %BACKUP_DIR%\backupdata (  rem 目录%BACKUP_DIR%\backupdata已存在,无需创建  echo 目录%BACKUP_DIR%\backupdata已存在无需创建         ) else (  rem 创建%BACKUP_DIR%\backupdataecho 创建%BACKUP_DIR%\backupdatamd %BACKUP_DIR%\backupdata ) 
::***************************************开始备份数据库到BACKUP_DIR/backupdb******************************************************
::获取当前日期和时间
echo 当前日期【DATE】是:%DATE%
echo 当前日期【date】是:%date%
echo 当前时间【TIME】是:%TIME%
echo 当前时间【Time】是:%time%
SET YYYY=%DATE:~3,4%
SET MM=%DATE:~8,2%
SET DD=%DATE:~11,2%
SET HH=%TIME:~0,2%
SET MI=%TIME:~3,2%
SET SS=%TIME:~6,2%
if %HH% LSS 10 (set HH=0%TIME:~1,1%)
::数据库备份文件名
set BACKUP_NAME=%YYYY%-%MM%-%DD%_%HH%-%MI%-%SS%_%DATABASE_NAME%_backup.sql
::备份数据库到指定目录
mysqldump.exe -h %MYSQL_HOST% -u%MYSQL_USER% -p%MYSQL_PASSWORD% --single-transaction --routines --triggers %DATABASE_NAME% > %BACKUP_DIR%\backupdb\%BACKUP_NAME%
::写创建备份日志
echo "%BACKUP_NAME% datebase backup completed" >> %BACKUP_DIR%/backupdb/backup_log.txt::删除 BACKUP_DIR\backupdb 目录下 前30天的文件
forfiles /p %BACKUP_DIR%\backupdb\ /s /d -%EFFECTIVE% /m *.sql /c "cmd /c del /q /f @path"::***************************************开始备份文件到BACKUP_DIR/backupdata******************************************************::备份文件到指定目录
robocopy "%SOURCE_FILE_DIR%\upload\XXXX" "%BACKUP_DIR%\backupdata\upload\XXXX" /e  /maxage:20230605 /MT:32

参数解析(修改参数):

::数据库备份文件及模型文件备份的根路径
SET BACKUP_DIR=Z:\backup
::********配置MySQL数据库备份相关参数***************
::数据库主机名
MYSQL_HOST=
::数据库用户名
MYSQL_USER=
::数据库密码
MYSQL_PASSWORD=
::数据库名称
DATABASE_NAME=
::数据库备份文件有效时间,单位天,(此天数之前的数据库备份文件需要删除)
SET EFFECTIVE=30
::*******配置文件备份相关参数*****************************
::待备份的文件所在根目录
SOURCE_FILE_DIR=

备注:此文件包括两部分,1是Mysql数据库,会生成mysql的备份文件,2是文件夹的备份,指定一个文件夹然后把他备份到其他文件夹下或者同网络开放共享目录的地方存储。根据自己需要选择修改参数。

二、加入windows定时任务

  • 在搜索框搜索"任务计划程序",并打开

  • 点击“创建任务”

  • 给当前任务命名

  • 点击“触发器”--》“新建”

  • 设置任务启动时间,点击确定

  • 点击"操作"--》“浏览”,导入bat文件,点击“确定”

  • 点击“条件”,按下图勾选后点击“确定”

  • 设置完成后点击确定

  • 在弹出的界面输入服务器管理员账号密码,点击确定,完成设置