windows下利用bat脚本备份mysql和定期清理备份文件
2017-11-15 15:22
1201 查看
本文实现的是利用mysqldump备份windows上面的mysql数据库,然后利用脚本清理上上个月的备份文件,保留上个月的备份文件
首先是数据库备份脚本backup.bat
@echo off
C:\mysqldump.exe --user=root --password=4234432 gzblapp>D:\db_bak\superstardbbak\sqldata\%date%_gzblapp.sql
C:\mysqldump.exe --user=windows1 --password=34534553 resourcesharing>D:\db_bak\rsdbbak\sqldata\%date%_resourcesharing.sql
@echo on
注意,备份脚本是调用c盘下面的mysqldump.exe来备份,大家根据安装mysql的路径去寻找mysqldump.exe,然后可以像我这样拷贝到c盘根目录下,方便后面使用cmd命令运行,上面备份路径的文件夹提前建好,我上面数据库的命令方式是根据日期加数据库名来命名的,大家根据各自数据库的不同情况来命名,注意我这里是要获取日期格式例如2017-08-09这样的,所以我首先是在装mysql的系统里面修改了时间格式为YYYY-MM-DD这样的,这是比较关键的
数据库清理的脚本clear.bat
注意,我上面的备份脚本分别设定了两个数据库的备份,一个是resourcesharing,另一个是gzblapp,删除的是上上个月的数据库文件,例如今天是2017-11-15,那么就是删除2017-09-15和2017-10-15之间的数据库文件,然后设置了他们路径,所以下面清理脚本都是设定了两个清理过程,解释在上面脚本注释都写得很清楚了,不清除的在下面评论区问把
首先是数据库备份脚本backup.bat
@echo off
C:\mysqldump.exe --user=root --password=4234432 gzblapp>D:\db_bak\superstardbbak\sqldata\%date%_gzblapp.sql
C:\mysqldump.exe --user=windows1 --password=34534553 resourcesharing>D:\db_bak\rsdbbak\sqldata\%date%_resourcesharing.sql
@echo on
注意,备份脚本是调用c盘下面的mysqldump.exe来备份,大家根据安装mysql的路径去寻找mysqldump.exe,然后可以像我这样拷贝到c盘根目录下,方便后面使用cmd命令运行,上面备份路径的文件夹提前建好,我上面数据库的命令方式是根据日期加数据库名来命名的,大家根据各自数据库的不同情况来命名,注意我这里是要获取日期格式例如2017-08-09这样的,所以我首先是在装mysql的系统里面修改了时间格式为YYYY-MM-DD这样的,这是比较关键的
数据库清理的脚本clear.bat
@echo off set sqldir1="D:\db_bak\rsdbbak\sqldata" set sqldir2="D:\db_bak\superstardbbak\sqldata" set orgin_mon=%date:~5,2% set orgin_year=%date:~0,4% set d=%date:~8,2% set mon=%orgin_mon% set y=%orgin_year% ::若是下一年的1、2月,则先加12,再在后面减去一个月和两个月的时间 if %orgin_mon% lss 2 (set /a mon=%orgin_mon%+12 & set/a y=%orgin_year%-1) set monsago=1 set twomonsago=2 ::分别计算前一个月和两个月前的日期,/a就是把字符串看作数字运算 set /a m=%mon%-%monsago% set m2=%m% if %m% lss 10 (set m2=0%m%) ::若月份是个位数,则在前面加0输出,因为做日期做运算的时候算出的结果是个位的时候是不会在前面带0的, ::而日期后面匹配日期来删除文件的时候数据库文件中的日期字符串个位数是带0的,如2017-08-09,当8减去2的时候是等于6,所以必须凑0变成06 set /a m1=%mon%-%twomonsago% set m3=%m1% set monsagofile1=%y%-%m2%-%d%_resourcesharing.sql set twomonsagofile1=%y%-%m3%-%d%_resourcesharing.sql set monsagofile2=%y%-%m2%-%d%_gzblapp.sql set twomonsagofile2=%y%-%m3%-%d%_gzblapp.sql echo %twomonsagofile2% ::删除名为sqldir1路径上面备份数据库上上个月之前的所有备份文件 for /f "delims=" %%i in ('dir/b/a-d %sqldir1% 2^>nul') do ( if %%i geq %twomonsagofile1% (if %%i lss %monsagofile1% (del %sqldir1%\%%i /f /q)) ) ::删除名为sqldir2路径上面备份数据库上上个月所有备份文件 for /f "delims=" %%j in ('dir/b/a-d %sqldir2% 2^>nul') do ( if %%j geq %twomonsagofile2% (if %%j lss %monsagofile2% (del %sqldir2%\%%j /f /q)) ) :end echo 2秒后退出 ping -n 2 127.0.0.1>nul pause
注意,我上面的备份脚本分别设定了两个数据库的备份,一个是resourcesharing,另一个是gzblapp,删除的是上上个月的数据库文件,例如今天是2017-11-15,那么就是删除2017-09-15和2017-10-15之间的数据库文件,然后设置了他们路径,所以下面清理脚本都是设定了两个清理过程,解释在上面脚本注释都写得很清楚了,不清除的在下面评论区问把
相关文章推荐
- mysql定期备份数据并压缩上传到ftp服务器的bat文件脚本,恢复建议使用SQLyog enterprise
- 利用bat脚本语言实现windows下文件的可靠复制与删除
- Shell脚本自动备份MySQL到FTP并定期清理过期备份
- 在Windows、Linux下,分别利用BAT批处理文件和Shell脚本,生成类似“20150605_111327.txt”命名的文件
- FAQ系列 | 如何在windows下用bat脚本定时备份mysql
- 文件备份脚本(windows 中bat 文件,set用法概述)
- Shell脚本自动备份MySQL到FTP并定期清理过期备份
- 利用windows脚本实现文件的自动备份
- windows下mysql自动备份恢复脚本文件
- FAQ系列 | 如何在windows下用bat脚本定时备份mysql
- Windows下简单的Mysql备份BAT脚本分享
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- linux上mysql日志备份脚本并远程上传至windows ftp服务器
- 定时备份文件的BAT脚本
- python实现windows下文件备份脚本
- linux 通过cp文件的方法来备份mysql脚本
- 定期删除备份文件脚本
- 利用windows脚本备份VSS服务器
- Windows文件和文件夹定期清理
- 在Windows下利用PowerShell脚本定时删除过期文件