新获取到一个需求,就是要按库进行备份,写了份脚本和大家分享一下吧
@echo off
for /f "Tokens=1-3 Delims=/ " %%i in ('date /t') do set dt=%%i-%%j-%%k-
for /f "Tokens=1-2 Delims=: " %%i in ('time /t') do set tm=%%i-%%j
set tm=%dt%%tm%
set bkupdir=D:\back
set mysql_host=127.0.0.1
set mysql_user=backup
set mysql_password=backup123
set expir_date=7
rem 获取所有数据库名称并逐个备份
e:
cd %bkupdir%
for /f "tokens=*" %%i in ('mysql -h %mysql_host% -u %mysql_user% -p%mysql_password% --skip-column-names -e "show databases;"') do (
if "%%i" equ "mysql" (
echo mysql:系统库不备份
) else if "%%i" equ "information_schema" (
echo information_schema:系统库不备份
) else if "%%i" equ "performance_schema" (
echo performance_schema:系统库不备份
) else if "%%i" equ "sys" (
echo sys:系统库不备份
) else (
echo 开始备份%dbname%数据库
if exist %bkupdir%\%mysql_host% (
echo 目录%bkupdir%\%mysql_host%已存在,无需创建
) else (
echo 创建%bkupdir%\%mysql_host%目录
mkdir %bkupdir%\%mysql_host%
)
rem 导出数据库内容到sql文件
mysqldump -u%mysql_user% -p%mysql_password% -h%mysql_host% %%i>%bkupdir%\%mysql_host%\%%i-%tm%.sql
)
)
rar a -r -s -m1 %mysql_host%-%tm%.rar %mysql_host% && (
rd /s/q %mysql_host%
forfiles /p "%bkupdir%" /s /m %mysql_host%*.rar /d -%expir_date% /c "cmd /c del @path
forfiles /p "%mysql_log%" /s /m *.* /d -%expir_date% /c "cmd /c del @path
)
