#! /bin/bash #==================================== # execution: /bin/sh /your_path/make_restore.sh arg1 arg2 # arg1 here stands for date in YYYYMMDDHHIISS format # arg2 here stands for full backup location path #==================================== . /usr/src/m2/framework/various_functions.sh . /usr/src/m2/framework/bash_functions.sh . /usr/src/m2/framework/settings.sh BACKUP_DATE=$1 BACKUP_FOLDER=$2 BACKUP_EXTENSION=bz2 # handle tar.gz format for old backups if [ -f $BACKUP_FOLDER/db_dump_"$BACKUP_DATE".sql.tar.gz ]; then BACKUP_EXTENSION=tar.gz fi LOG_FILE="/var/log/m2/db_backup.log" backup_folder if [ ! -n "$1" ] && [ ! -n "$2" ]; then echo -n `date` >> $LOG_FILE echo "arguments not passed" >> $LOG_FILE echo 1 exit 1 fi mysql_connect_data_v2 > /dev/null # save current db cd $BACKUP_FOLDER echo "Backing up and restoring the m2 db" mkdir -p restore mysqldump -h "$DB_HOST" -u $DB_USERNAME --password=$DB_PASSWORD --single-transaction --ignore-table="$DB_NAME".backups "$DB_NAME" > "$BACKUP_FOLDER"/restore/db_dump.sql if [ "$?" != "0" ]; then echo "Failed to make a backup of current DB before restoring. DEBUG: $1 $BACKUP_FOLDER $OUT" >> $LOG_FILE echo 1 exit 1 fi cd restore mor_compress db_dump.sql 1 backups_error_output mysql_backup_when_restoring_making_another_back # restore old backup if [ -f "$BACKUP_FOLDER"/db_dump_"$BACKUP_DATE".sql.$BACKUP_EXTENSION ]; then cd $BACKUP_FOLDER if [ "$BACKUP_EXTENSION" == "bz2" ]; then bzip2 -dk db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION else tar xzf db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION fi if [ "$?" == "0" ]; then echo "Extracted backup $BACKUP_FOLDER/db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION" >> $LOG_FILE else echo "Failed to extract backup $BACKUP_FOLDER/db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION" >> $LOG_FILE echo 1 exit 1 fi else echo "Backup file does not exist: $BACKUP_FOLDER/db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION" >> $LOG_FILE echo 1 exit 1 fi mysql -h "$DB_HOST" -u $DB_USERNAME --password=$DB_PASSWORD "$DB_NAME" < "$BACKUP_FOLDER"/db_dump_"$BACKUP_DATE".sql if [ "$?" == "0" ]; then echo "Successfully imported backup $BACKUP_FOLDER/db_dump_$BACKUP_DATE.sql.$BACKUP_EXTENSION" >> $LOG_FILE else echo "Failed to import backup" >> $LOG_FILE echo 1 exit 1 fi # delete extracted sql file to save space rm -rf db_dump_$BACKUP_DATE.sql echo 0