新建一BAT文件,填入下面代码,建一计划任务定时执行这个bat。
@echo off
::删除超过30天的备份数据
forfiles /p “D:\db_backup” /m backup.sql -d -30 /c “cmd /c del /f @path”
::定义时间
set “data_time=%date:0,4%%date:5,2%%date:8,2%%time:0,2%%time:3,2%%time:6,2%%time:~9,2%”
::备份数据库命令
D:/mysql56/bin/mysqldump.exe --opt -u 数据库用户名 --password=数据库密码 数据库名 > D:/db_backup/mysql_backup_%data_time%.sql
@echo on
上面代码存在BUG,白天能备份成功凌晨不成功,原因是:通过 %time:~0,2% 获取小时,如果当前小时为个位数,即 0-9 点时,小时前会出现 空格 :
解决方法参考:https://blog.csdn.net/ckth47350/article/details/100252409
想省事的话就调整备份时间在:10:00–0:00 之间。