mysql 自动备份 bat_windows下mysql自动定时备份bat

@echo off

: basedata

set ip=192.168.12.41

set user=root

set password=12456

set databaseName=test

set /a backupDays=7

set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 5.5\bin\

set mysqlBackupPath=D:\mysql_back\

rem winxp/2003

set logs=%mysqlBackupPath%\logs.txt

set day=%date:~7,2%

set month=%date:~4,2%

set /a year=%date:~10,4%

rem win7/2008

set day=%date:~8,2%

set month=%date:~5,2%

set /a year=%date:~0,4%

if not exist %mysqlBackupPath% md %mysqlBackupPath%

echo %year%-%month%-%day% >> %logs%

set backupingFilePath=%mysqlBackupPath%\%databaseName%_%year%-%month%-%day%.sql

cd /d %mysqlBinPath%

echo backupdata >> %logs%

set errorlevel=0

echo errorlevel=%errorlevel%

mysqldump -h%ip% -u%user% -p%password% --default-character-set=gbk --opt --extended-insert=false --triggers -R --hex-blob -x %databaseName%>%backupingFilePath%

set /a myerrorlevel=%errorlevel%

echo myerrorlevel=%myerrorlevel%

if %myerrorlevel% leq 0 (

if exist %backupingFilePath% (

echo backupcomplete mysqlBackup_%year%-%month%-%day%.sql

echo  backupcomplete mysqlBackup_%year%-%month%-%day%.sql >> %logs%

) else (

echo backupfaile

echo backupfaile >> %logs%

pause

exit

)

) else (

echo backupfail

echo backupfail >> %logs%

if exist %backupingFilePath% (

del %backupingFilePath%

)

pause

exit

)

rem delete backupDays's backup

set /a day=1%day%-100-backupDays

rem

if %day% lss 1 (

set /a daysTemp=day

call :daysOfLastMonth

) else set /a daysTemp=0

set /a day+=daysTemp

rem

if day lss 10 (set day=0%day%)

set /a month=%month%

if %month% lss 10 (set month=0%month%)

set deleteBackupFilePath=%databaseName%%year%%month%%day%.sql

echo mysqlBackup_%year%-%month%-%day%.sql

echo mysqlBackup_%year%-%month%-%day%.sql >> %logs%

if exist %mysqlBackupPath%\%deleteBackupFilePath% (

del %mysqlBackupPath%\%deleteBackupFilePath%

echo delcomplete >> %logs%

) else (

echo the document isn't exist >> %logs%

)

echo -----------------------------------------------------end >> %logs%

:daysOfLastMonth

set /a month=%month%-1

set /a mod1=%year%%%4

set /a mod2=%year%%%100

if %month% lss 1 (

set month=12

set year=%year%-1

set day=31

) else (

if %month% == 2 (

set day=28

if %mod1% == 0 (

set day=29

if mod2 == 0 (

set day=28

)

)

) else (

for %%a in (1 3 5 7 8 10 12) do (

if %month% == %%a (

set day=31

goto :eof

)

)

set day=30

)

)

goto :eof

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值