由于公司windows服务器上的MySQL备份一直没采用第三方热备工具,备份方式仍旧是比较LOW的零晨直接停掉Mysql进行数据库文件COPY备份的(BAT脚本),近期反馈客户零晨网站间断打不开,影响访问体验度,于是需要整改,于是下载了一个三方工具好备份,设置定时备份,测试发现其所谓的压缩热备方式(看上去很高大尚,确实设置简单易用),其实就是将数据库文件复制到一个临时目录,再进行压缩存放并删掉临时目录文件,于是产生了写一个BAT脚本替代安装这个工具(也可以偷懒了)计划任务都是设置好的,替换原来比较LOW的脚本即可,无需要动其它任务配置,加上安装好备份每台还要点点点,服务器较多,于是写了如下脚本:时间紧脚本还可以优化改进,勿喷!!!
@echo off
::Author: jerry
::Date:2018-11-20
echo.
echo MySQL数据库及网站程序备份脚本
echo
echo Author: jerry
echo Date:2018-11-20
echo 备份日期:%date%
echo 备份时间:%time%
echo.
echo
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
set bakdir="D:\Program Files\MySQL51\data"
set sqlcache="C:\mysqlcache"
set webdir="E:\wwwroot"
echo 正在进入MySQL目录。注意:对于有空格的目录,命令行要加引号。"C:\Program Files"
echo 正在备份Mysql数据,请稍等......
if not exist "%sqlcache%" mkdir "%sqlcache%"
for /F %%a in ('dir /ad /b %bakdir%') do (
::echo "%bakdir%\%%a %sqlcache%\%%a" >>a.log
if not exist "%sqlcache%\%%a" mkdir "%sqlcache%\%%a"
xcopy "D:\Program Files\MySQL51\data"\%%a "C:\mysqlcache"\%%a /s /E /y >nul
)
if not exist "F:\mysqlbak\%Ymd%" mkdir "F:\mysqlbak\%Ymd%"
for /f "usebackq tokens=1 delims=/" %%a in (dir /b %sqlcache%
) do "C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ep1 -r0 -df -exit -- "F:\mysqlbak\%Ymd%\%%a.rar" %sqlcache%\%%a
echo 数据库备份完成......
echo.
echo 网站数据备份中,请稍后......
if not exist "F:\freehostbackup\%Ymd%" mkdir "F:\freehostbackup\%Ymd%"
for /f "usebackq tokens=1 delims=/" %%i in (dir /b %webdir%
) do "C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ep1 -r0 -exit -- "F:\freehostbackup\%Ymd%\%%i.rar" %webdir%\%%i
echo.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。