Windows下实现MySQL数据库自动备份脚本,自动删除一周前备份数据,并生成日志文件

2024-07-18   阅读:250   类型:后端   分类:Mysql    标签: windows

Windows下实现MySQL数据库自动备份脚本,自动删除一周前备份数据,并生成日志文件

1、生成SQL文件,新建back.bat脚本

@echo off
set MYSQL_PATH=D:\MySQL-8.0.26\bin
set DB_HOST=localhost
set DB_USERNAME=root
set DB_PASSWORD=root
set DB_NAME=mydb
set BACKUP_PATH=E:\MySqlBack\MySQL

rem 获取当前日期,并将其格式化为 YYYY-MM-DD 格式
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set YYYY=%datetime:~0,4%
set MM=%datetime:~4,2%
set DD=%datetime:~6,2%
set CURRENT_DATE=%YYYY%-%MM%-%DD%

cd D:\MySQL-8.0.26\bin
mysqldump -u %DB_USERNAME% -p%DB_PASSWORD% --quick %DB_NAME% --default-character-set=utf8 > E:\MySqlBack\MySQL\mydb_%CURRENT_DATE%.sql

rem 将完成信息写入日志文件
echo Backup completed at %DATE% %TIME% >> E:\MySqlBack\MySQL\backup_mydb_log_%CURRENT_DATE%.txt

rem 等待几秒钟后关闭窗口
timeout /t 10 >nul

exit

2、根据日期删除备份文件,新建delback.bat脚本

删除过去一周7天的数据

@echo off
setlocal enabledelayedexpansion

rem 设置变量
set DATA_FOLDER=E:\MySqlBack\MySQL
set DAYS_TO_KEEP=7

rem 获取当前日期,并计算一周前的日期
for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do (
  set "YYYY=%%c"
  set "MM=%%a"
  set "DD=%%b"
)
set CURRENT_DATE=%YYYY%-%MM%-%DD%

rem 计算一周前的日期
powershell -Command "$oldDate=(Get-Date).AddDays(-%DAYS_TO_KEEP%); '{0:yyyy-MM-dd}' -f $oldDate" > temp.txt
set /p OLD_DATE=<temp.txt
del temp.txt

rem 构建一周前的文件名前缀
set PREFIX=mydb_%OLD_DATE%

rem 删除一周之前的文件
for /f "tokens=*" %%f in ('dir /b /a-d "%DATA_FOLDER%\%PREFIX%*.sql"') do (
  del "%DATA_FOLDER%\%%f"
  echo Deleted file: %%f
)

rem 完成删除操作
echo Deletion completed at %date% %time%

exit
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/adetail/1104.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×