Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- set dbUser=root
- set dbPassword=Z5nNgtWDA2MC
- set "backupDir=C:\Users\Administrator\Desktop\MySQLBackups\backupfiles\"
- set "mysqldump=C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe"
- set "mysqlDataDir=C:\ProgramData\MySQL\MySQL Server 5.7\Data"
- set "zip=C:\Program Files\7-Zip\7z.exe"
- rem The four lines below will give you reliable YY DD MM YYYY HH Min Sec MS variables in XP Pro and higher.
- for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
- set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
- set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" & set "MS=%dt:~15,3%"
- set "dirname=%YY%%MM%%DD%_%HH%%Min%"
- echo "dirName"="%dirname%"
- :: switch to the "data" folder
- pushd "%mysqlDataDir%"
- :: create backup folder if it doesn't exist
- if not exist "%backupDir%\%dirName%\" mkdir "%backupDir%\%dirName%"
- :: iterate over the folder structure in the "data" folder to get the databases
- for /d %%f in (*) do (
- echo processing folder "%%f"
- "%mysqldump%" --host="localhost" --user=%dbUser% --password=%dbPassword% --single-transaction --add-drop-table --databases %%f > "%backupDir%\%dirName%\%%~nxf.sql"
- "%zip%" a -tgzip "%backupDir%\%dirName%\%%~nxf.sql.gz" "%backupDir%\%dirName%\%%~nxf.sql"
- del "%backupDir%\%dirName%\%%~nxf.sql"
- )
- popd
- ::keep 3 newest backup *.sql files
- for /f "skip=20 delims=" %%a in ('dir "%backupDir%\%dirName%\*.sql" /b /o-d /a-d') do echo del "%backupDir%\%dirName%\%%a"
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement