#!/bin/bash NORM="\033[47;34m[*]\033[0m" SUCC="\033[47;32m[+]\033[0m" FAIL="\033[47;31m[-]\033[0m" WARN="\033[47;33m[?]\033[0m" if [ ! $1 ]; then echo -e $FAIL "No function was specified." exit 1 fi if [ $1 == "backup" ]; then if [ ! $2 ]; then echo -e $FAIL "No database was given, aborting..." exit 1 else sudo /usr/local/mysql/bin/mysql -e "CREATE DATABASE $2" 2> /dev/null if [ $? == 1 ]; then echo -e $NORM "Beginning backup..." else echo -e $FAIL "Database does not exist, aborting..." exit 1 fi fi mkdir -p backup/ mkdir -p backup/latest/ mkdir -p backup/archive/ mkdir -p backup/latest/$2/ TABLE=$3 if [ ! $3 ]; then TABLE="all" fi for i in $( ls backup/latest/$2 ); do for k in $( ls backup/latest/$2 | grep $TABLE ); do if [ "$i" == "$k" ]; then mkdir -p backup/archive/$2/ mv backup/latest/$2/$i backup/archive/$2/ echo -e $NORM "$k has been archived." fi done done TIME=$(date +%y%m%d) FILE=$TABLE-$TIME.sql sudo /usr/local/mysql/bin/mysqldump $2 $3 > $PWD/backup/latest/$2/$FILE echo -e $SUCC "Successfully backed up $1.$2 as $FILE" elif [ $1 == "restore" ]; then if [ ! $2 ]; then echo -e $FAIL "No database was given, aborting..." exit 1 else sudo /usr/local/mysql/bin/mysql -e "DROP DATABASE $2" 2> /dev/null sudo /usr/local/mysql/bin/mysql -e "CREATE DATABASE $2" 2> /dev/null echo -e $NORM "Database was destroyed, created" fi if [ ! $3 ]; then echo -e $WARN "No path was given to recovery file, using init.sql" FILE=$PWD/"init.sql" else FILE=$3; fi cat $FILE 2> /dev/null > /dev/null if [ $? == 0 ]; then echo -e $NORM "Recovery file found" else echo -e $FAIL "Recovery file was not found" exit 1 fi sudo /usr/local/mysql/bin/mysql $2 < $FILE echo -e $SUCC "Database $2 has been restored" else echo -e $FAIL "$1 is not a valid function, aborting..." exit 1 fi