#!/bin/bash
# # Bash script per backup e restore sql
# Crediti postiglione Simone - postiglionesimone.com
# Attezione! Il seguente script viene fornito senza assistenza 
clear
printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Strumento rapido per Database \e[0m\e[1;31m(\e[0m\e[1;33mBackup e restore\e[0m\e[1;31m)\e[0m\n"
printf "\n"
NOWDATE=`date +%Y-%m-%d`
PS3='Scegli un opzione: '
options=("Backup database" "Restore database" "Esci")
select opt in "${options[@]}"
do
    case $opt in
        "Backup database")
printf "\n"
printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Database \e[0m\e[1;31m(\e[0m\e[1;33m Backup \e[0m\e[1;31m)\e[0m\n"
printf "\n"
                read -p 'Inserisci il nome del DB: ' db
                read -p 'Inserisci il nome utente del DB: ' dbuser
                read -p 'Inserisci la password dell utente DB: ' dbpass
                read -p 'Inserisci il nome del file Backup: ' dbfilename
		if mysqldump -u$dbuser -p"$dbpass" --databases $db > $dbfilename.sql ; then
		    echo "Backup del database $db salvato in $(pwd)/$dbfilename.sql"
                    printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Eseguito! \e[0m\e[1;31m( Backup completato\e[0m\e[1;33m \e[0m\e[1;31m)\e[0m\n"
		else
		    printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Errore \e[0m\e[1;31m(credenziali sbagliate \e[0m\e[1;33m \e[0m\e[1;31mimpossibile eseguire il backup)\e[0m\n"
		fi

        break
            ;;
       "Restore database")
#clear
printf "\n"
printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Database \e[0m\e[1;31m(\e[0m\e[1;33m Restore \e[0m\e[1;31m)\e[0m\n"
printf "\n"
		read -p 'Inserisci il nome del DB: ' db # Enter
		read -p 'Inserisci il nome utente del DB: ' dbuser
		read -p 'Inserisci la password dell utente DB: ' dbpass
		read -p 'Inserisci il nome del file Backup da ripristinare: ' dbfile
	        if mysql -u$dbuser -p"$dbpass" --database $db < $dbfile ; then
		echo "Your DB $db has been restored! "
                    printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Success \e[0m\e[1;31m( Restore completato\e[0m\e[1;33m \e[0m\e[1;31m)\e[0m\n"
		else
                    printf "\e[1;31m [\e[0m\e[1;37m~\e[0m\e[1;31m]\e[0m\e[1;32m Error \e[0m\e[1;31m(credenziali errate\e[0m\e[1;33m \e[0m\e[1;31mimpossibile ripristinare il backup)\e[0m\n"
		
		fi
        break
            ;;
        "Esci")
            break
            ;;
        *) echo "opzione invalida $REPLY";;
    esac
done
