一)功能描述mysql
天天將mysql的ALLSqlLogFile和SlowSqlLogFile備份到D:\xampp\mysql\backup\sqllog,並以時間爲後綴將2個文件夾壓縮爲一個,並將打印結果輸出到D:\xampp\mysql\backup\sqllog\mysqlrotate.logsql
二)代碼詳解windows
- 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時間戳的獲取方法:數組
首先在命令行輸入dateide
我想獲得的字符串是20130326,這裏我就解釋下前面提到的代碼%date:~0,4%%date:~5,2%%date:~8,2%工具
%date:~0,4%:這裏的"0"表示起始位置,想數組裏的A[0],也就是第一個字符-2;4表示像後讀取4位,就是2013spa
同理可得:%date:~5,2%==03 %date:~8,2%==26 。這三段字符串拼接起來就是咱們須要的每日備份的文件後綴了。命令行
三)建立批處理腳本3d
將前面那段代碼複製到一個新建記事本中,而後「文件」-「另存爲」,後綴改爲bat,放在桌面便可。xml
4)建立每日任務計劃
以Server03 sp1爲例,點擊「開始」-「程序」-「附件」-「系統工具」-「任務計劃」,雙擊「添加任務計劃」,點擊「下一步」
點擊「瀏覽」,在桌面找到剛纔生成的bat腳本
以後依次按要求填寫任務起始和終止時間便可。
到此爲止已經大功告成了~