Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- REM MySQL Super Backup Script v1.0 - Created by @gkaratsiolis (kudoz @eziogas)
- REM fast & accurate MySQL backup script for tables and views. Supports compression out of the box.
- REM requires GOW - https://github.com/bmatzelle/gow/releases
- set user=root
- set pass=""
- set database=backup
- set datestr=_%date:~10,4%-%date:~7,2%-%date:~4,2%_%time:~0,2%-%time:~3,2%
- set exclude=''
- set file=database
- set host="localhost"
- set port=3306
- set compress=yes
- set nodate=no
- :initial
- if "%1"=="" goto done
- set aux=%1
- if "%aux:~0,1%"=="-" (
- set nome=%aux:~1,250%
- ) else (
- set "%nome%=%1"
- set nome=
- )
- shift
- goto initial
- :done
- if "%nodate%"=="yes" set datestr=
- set filename=%file%%datestr%.sql
- set filenamezip=%file%%datestr%.zip
- set passoption=
- IF %pass% NEQ "" set passoption="--password=%pass%"
- REM Generate Dump of VIEWS
- mysql --default-character-set=utf8 --host=%host% --port=%port% --user=%user% --password=%pass% -e"select concat('DROP VIEW IF EXISTS ',table_name,';') from information_schema.views WHERE TABLE_SCHEMA = '%database%'" > dumpviews.sql
- tail -n +2 dumpviews.sql > dumpviews.sql.tmp && mv dumpviews.sql.tmp dumpviews.sql
- REM Generate Creation of VIEWS
- mysql --default-character-set=utf8 --host=%host% --port=%port% --user=%user% --password=%pass% -e"select concat('SHOW CREATE VIEW ',table_schema,'.',table_name,';') from information_schema.views WHERE TABLE_SCHEMA = '%database%'" | sed -e "s/\;/\\G/g" > createviews.sql
- tail -n +2 createviews.sql > createviews.sql.tmp && mv createviews.sql.tmp createviews.sql
- mysql --default-character-set=utf8 --host=%host% --port=%port% --user=%user% --password=%pass% < createviews.sql > views.sql
- sed -i "/^*/ d" views.sql
- sed -i "s/\(^.*\)\(CREATE.*\)/\2;/g" views.sql
- sed -ni "/CREATE/p" views.sql
- sed -i "s/DEFINER=[^[:space:]]\+ //" views.sql
- sed -i "s/`%database%`.//g" views.sql
- type views.sql >> dumpviews.sql
- mv dumpviews.sql views.sql
- REM Generate Creation of TABLES
- mysql --default-character-set=utf8 --host=%host% --port=%port% --user=%user% --password=%pass% -e"SET group_concat_max_len = 10240; SELECT CONCAT('DUMPCOMMMAND ', GROUP_CONCAT(table_name separator ' ')) FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema='%database%' AND table_name NOT IN (%exclude%)" | sed -e "s/\;/\\G/g" > createdb.bat
- tail -n +2 createdb.bat > createdb.bat.tmp && mv createdb.bat.tmp createdb.bat
- sed -i "s/DUMPCOMMMAND/mysqldump --default-character-set=utf8 --host=%host% --port=%port% --extended-insert=FALSE --hex-blob --user=%user% %passoption% %database%/g" createdb.bat
- call createdb.bat > %filename%
- cat views.sql >> %filename%
- if "%compress%"=="yes" (
- zip %filenamezip% %filename% > null
- rm %filename%
- echo %filenamezip%
- ) else (
- echo %filename%
- )
- rm createdb.bat
- rm views.sql
- rm createviews.sql
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement