Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Gitea_EDrestore_from_local-mysql.sh 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. BAK_Project=Gitea_ED
  3. Database_Name=db_ed8_
  4. TMP_File=/ED/${BAK_Project}/${BAK_Project}restore_from_local.pw
  5. read -p "Please enter the user name of mysql $Database_Name: " edname
  6. echo -e "ID\t$edname" > $TMP_File
  7. read -p "Please enter the password of mysql $Database_Name: " edpw
  8. echo -e "Password\t$edpw" >> $TMP_File
  9. LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}restore_from_local-mysql.log
  10. edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'`
  11. edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'`
  12. echo -e "\033[32mBelow are all saved mysql backup files \033[0m"
  13. ls /ED/${BAK_Project}/Backup_file/ -al | grep backup-mysql-${BAK_Project}
  14. echo
  15. echo -e -n "\033[33mWhich file do you want to restore? \033[0m"
  16. read DATABASE_BAK_File_NAME
  17. ls /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1
  18. if [[ $? != 0 ]]; then
  19. echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m"
  20. echo
  21. exit
  22. else
  23. echo -e "\033[34mPass. The file ($DATABASE_BAK_File_NAME) exist, go next..."
  24. fi
  25. echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1
  26. echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore ${BAK_Project} mysql from dumped files" | tee -a $LOG1
  27. mysql -u $edID -p$edPW -e 'show databases;'
  28. mysql -u $edID -p$edPW -e 'show databases;' | grep $Database_Name | wc -l > /dev/null 2>&1
  29. if [[ $? == 0 ]]; then
  30. echo -e "\033[44;37m1/2: The database named $Database_Name exist, go next\033[0m" | tee -a $LOG1
  31. else
  32. echo "\033[45;37m1/2: There is no database named $Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1
  33. expect -c "
  34. spawn sudo mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $Database_Name\"
  35. expect \"password for ed:\"
  36. send \"$edPW\r\"
  37. expect \"Enter password:\"
  38. send \"$edPW\r\"
  39. expect eof"
  40. sleep 2
  41. fi
  42. #sudo mysql -u $edID -p $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql
  43. #mysql -u $edID -p$edPW $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql
  44. gunzip -c /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $Database_Name #with gzip restore
  45. if [[ $? == 0 ]]; then
  46. echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1
  47. else
  48. echo -e "\033[41;37m2/2: Restore mysql failed.\033[0m" | tee -a $LOG1
  49. fi
  50. rm $TMP_File
  51. echo | tee -a $LOG1
  52. echo -e "If you want to check the LOG, please perform below command: "
  53. echo -e " \033[35m# cat $LOG1 \033[0m"
  54. echo