@echo off @rem *************************************************************** @rem ** Author: Robert Lie (Mobilefish.com) @rem ** @rem ** backup_drupal_database.bat @rem ** @rem ** Makes a backup of the drupal database. @rem ** The backup sql file is stored in a folder and a file which @rem ** contains the current date and time. @rem ** @rem ** If you run the script manually, the following is created: @rem ** C:\drupal_backup\backup\_\drupal__.sql @rem ** @rem ** For example: @rem ** C:\drupal_backup\backup\20060520_1252\drupal_20060520_1252.sql @rem ** @rem ** This script only works on Windows 2000 and XP because @rem ** option "usebackq" is only valid for these operating systems. @rem ** @rem ** This script is based on a Dutch or English @rem ** date and time settings. @rem ** @rem ** Explanation: @rem ** 1)If you have a Dutch date setting, @rem ** type in a dos window: date [enter] @rem ** You will see something like: @rem ** Huidige datum: ma 15-05-2006 @rem ** ^ ^ ^ ^ @rem ** | | | | @rem ** | | | +----- year: token 4 @rem ** | | +-------- month: token 3 @rem ** | +------------ day: token 2 @rem ** +--------------- day of week: token 1 @rem ** @rem ** Note 1: The text "Huidige datum: " is NOT part of any token. @rem ** Note 2: In this script TWO delimeters are used "-" AND " " @rem ** If you leave out delimeter " " then the first token is @rem ** ma 15 @rem ** @rem ** 2)If you have a Dutch time setting, @rem ** type in a dos window: time [enter] @rem ** You will see something like: @rem ** Huidige tijd: 17:56:38,07 @rem ** ^ ^ ^ ^ @rem ** | | | | @rem ** | | | +------ hunderds of seconds: token 3 @rem ** | | +-------- seconds: token 3 @rem ** | +------------ minutes: token 2 @rem ** +--------------- hours: token 1 @rem ** @rem ** Note 1: The text "Huidige tijd: " is NOT part of any token. @rem ** Note 2: In this script ONE delimeter is used ":" @rem ** Note 3: Token 3 is "38 07". The comma is not displayed. @rem ** @rem ** 3)If you have a English date setting, @rem ** type in a dos window: date [enter] @rem ** You will see something like: @rem ** The current date is: Wed 05/17/2006 @rem ** ^ ^ ^ ^ @rem ** | | | | @rem ** | | | +----- year: token 4 @rem ** | | +--------- day: token 3 @rem ** | +------------ month: token 2 @rem ** +--------------- day of week: token 1 @rem ** @rem ** Note 1: The text "The current date is: " is NOT part of any token. @rem ** Note 2: In this script TWO delimeters are used "/" AND " " @rem ** If you leave out delimeter " " then the first token is @rem ** Wed 05 @rem ** @rem ** 4)If you have a English time setting, @rem ** type in a dos window: time [enter] @rem ** You will see something like: @rem ** The current time is: 12:00:16.04 @rem ** ^ ^ ^ ^ @rem ** | | | | @rem ** | | | +------ hunderds of seconds: token 3 @rem ** | | +-------- seconds: token 3 @rem ** | +------------ minutes: token 2 @rem ** +--------------- hours: token 1 @rem ** @rem ** Note 1: The text "The current time is: " is NOT part of any token. @rem ** Note 2: In this script ONE delimeter is used ":" @rem ** Note 3: Token 3 is "38 07". The comma is not displayed. @rem ** @rem ** 5) If you do not have a Dutch or English date and time setting @rem ** change the token and delimeters according to your situation. @rem ** @rem ** More information about drupal see: @rem ** https://www.mobilefish.com/developer/drupal/drupal_quickguide_47.html @rem ** @rem ** More information about the backup script see: @rem ** https://www.mobilefish.com/developer/drupal/drupal_quickguide_backupdatabase.html @rem ** @rem *************************************************************** @rem Change the following settings according to your situation set MYSQL_DIR="C:\Tools\mysql\bin\" set MYSQL_USER_ACCOUNT=root set MYSQL_USER_PASSWORD=mysecret set MYSQL_DATABASE=drupal set SCRIPT_DIR="C:\drupal_backup" set BACKUP_DIR="%SCRIPT_DIR%\backup" set LANGUAGE=english @rem *********************** Start ********************************* if "%LANGUAGE%"=="english" goto english if "%LANGUAGE%"=="dutch" goto dutch @rem *********************** Dutch settings ************************ :dutch @rem Fill the day, month en year variables for /F "usebackq tokens=2 delims=- " %%i in ('%DATE%') do set day=%%i for /F "usebackq tokens=3 delims=- " %%i in ('%DATE%') do set month=%%i for /F "usebackq tokens=4 delims=- " %%i in ('%DATE%') do set year=%%i @rem Fill the hour and minute variables for /F "usebackq tokens=1 delims=:" %%i in ('%TIME%') do set hour=%%i for /F "usebackq tokens=2 delims=:" %%i in ('%TIME%') do set minute=%%i goto create @rem *********************** English settings ********************** :english @rem Fill the day, month en year variables for /F "usebackq tokens=3 delims=/ " %%i in ('%DATE%') do set day=%%i for /F "usebackq tokens=2 delims=/ " %%i in ('%DATE%') do set month=%%i for /F "usebackq tokens=4 delims=/ " %%i in ('%DATE%') do set year=%%i @rem Fill the hour and minute variables for /F "usebackq tokens=1 delims=:" %%i in ('%TIME%') do set hour=%%i for /F "usebackq tokens=2 delims=:" %%i in ('%TIME%') do set minute=%%i goto create @rem *********************** Create backup ************************ :create @rem Do not change anything below unless you know what you are doing set datetime="%year%%month%%day%_%hour%%minute%" set dir="%BACKUP_DIR%\%datetime%" if not exist %dir% mkdir %dir% cd %MYSQL_DIR% mysqldump --allow-keywords --opt -u%MYSQL_USER_ACCOUNT% -p%MYSQL_USER_PASSWORD% %MYSQL_DATABASE% > %dir%\drupal_%datetime%.sql cd %SCRIPT_DIR%