#!/bin/bash Gitea_ED_Database_Name=db_gitea TMP_File=/ED/Gitea_ED/Gitea_EDrestore_from_local.pw read -p "Please enter the user name of mysql $Gitea_ED_Database_Name: " edname echo -e "ID\t$edname" > $TMP_File read -p "Please enter the password of mysql $Gitea_ED_Database_Name: " edpw echo -e "Password\t$edpw" >> $TMP_File LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDrestore_from_local-mysql.log edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` echo -e "\033[32mBelow are all saved mysql backup files \033[0m" ls /ED/Gitea_ED/Backup_file/ -al | grep backup-mysql-Gitea_ED echo echo -e -n "\033[33mWhich file do you want to restore? \033[0m" read DATABASE_BAK_File_NAME ls /ED/Gitea_ED/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 if [[ $? != 0 ]]; then echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" echo exit else echo -e "\033[34mPass. The file ($DATABASE_BAK_File_NAME) exist, go next..." fi echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore Gitea_ED mysql from dumped files" | tee -a $LOG1 mysql -u $edID -p$edPW -e 'show databases;' mysql -u $edID -p$edPW -e 'show databases;' | grep $Gitea_ED_Database_Name | wc -l > /dev/null 2>&1 if [[ $? == 0 ]]; then echo -e "\033[44;37m1/2: The database named $Gitea_ED_Database_Name exist, go next\033[0m" | tee -a $LOG1 else echo "\033[45;37m1/2: There is no database named $Gitea_ED_Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 expect -c " spawn sudo mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $Gitea_ED_Database_Name\" expect \"password for ed:\" send \"$edPW\r\" expect \"Enter password:\" send \"$edPW\r\" expect eof" sleep 2 fi #sudo mysql -u $edID -p $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql #mysql -u $edID -p$edPW $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql gunzip -c /ED/Gitea_ED/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $Gitea_ED_Database_Name #with gzip restore if [[ $? == 0 ]]; then echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 else echo -e "\033[41;37m2/2: Restore mysql failed.\033[0m" | tee -a $LOG1 fi rm $TMP_File echo | tee -a $LOG1 echo -e "If you want to check the LOG, please perform below command: " echo -e " \033[35m# cat $LOG1 \033[0m" echo