一)功能描述
每天将mysql的ALLSqlLogFile和SlowSqlLogFile备份到D:\xampp\mysql\backup\sqllog,并以时间为后缀将2个文件夹压缩为一个,并将打印结果输出到D:\xampp\mysql\backup\sqllog\mysqlrotate.log
二)代码详解
- set RotateDir=D:\xampp\mysql\backup\sqllog //定义备份路径
- set LogFile=D:\xampp\mysql\backup\sqllog\mysqlrotate.log //定义打印文件夹
- set CurrentDate=%date:~0,4%%date:~5,2%%date:~8,2% //定义当前时间(下面会提到时间的提取方法)
- echo " " >> %LogFile% //将每日操作打印到LogFile
- echo " " >> %LogFile%
- echo "-------------------------------------------" >> %LogFile%
- echo %date% %time% >> %LogFile%
- echo "--------------------------" >> %LogFile%
- set AllSqlLogFile=D:\xampp\mysql\data\all.sql //定义生成的ALLSqlLogFile路径
- set SlowSqlLogFile=D:\xampp\mysql\data\slow-query.log //定义生成的SlowSqlLogFile路径
- move /y %AllSqlLogFile% %AllSqlLogFile%.%CurrentDate% //以当天的时间,重命名各文件
- move /y %SlowSqlLogFile% %SlowSqlLogFile%.%CurrentDate%
- D:\xampp\mysql\bin\mysqladmin.exe -u (用户名) -p(密码) flush-logs >> %LogFile% //将mysql输出到LogFile
- move /y %AllSqlLogFile%.%CurrentDate% D:\xampp\mysql\backup\sqllog\compression //将这2个以时间为后缀,存入sqllog下的compression文件夹中(comression这个文件夹是)
- move /y %SlowSqlLogFile%.%CurrentDate% D:\xampp\mysql\backup\sqllog\compression 我随便创建的,目的是用来将压缩好的东西剪切到上一级sqllog目录)
- set path=c:\Windows;c:\program files\WinRAR //定义压缩路径
- rar.exe a -ep1 -r -o+ -m5 -s -df "D:\xampp\mysql\backup\sqllog\backup.%CurrentDate%".rar "D:\xampp\mysql\backup\sqllog\compression\" //执行压缩并剪切的工作
接下来,要讲一下,windows时间戳的获取方法:
首先在命令行输入date
我想得到的字符串是20130326,这里我就解释下前面提到的代码%date:~0,4%%date:~5,2%%date:~8,2%
%date:~0,4%:这里的"0"表示起始位置,想数组里的A[0],也就是第一个字符-2;4表示像后读取4位,就是2013
同理可得:%date:~5,2%==03 %date:~8,2%==26 。这三段字符串拼接起来就是我们需要的每日备份的文件后缀了。
三)创建批处理脚本
将前面那段代码复制到一个新建记事本中,然后“文件”-“另存为”,后缀改成bat,放在桌面即可。
4)创建每日任务计划
以Server03 sp1为例,点击“开始”-“程序”-“附件”-“系统工具”-“任务计划”,双击“添加任务计划”,点击“下一步”
点击“浏览”,在桌面找到刚才生成的bat脚本
之后依次按要求填写任务起始和终止时间即可。
到此为止已经大功告成了~