mysql_backup_restore.sh 994 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # 使用方法
  2. # 参数一为要恢复的源数据库
  3. # 参数二为要恢复的数据库版本时间
  4. # 参数三为要恢复的目标数据库,可选
  5. # 例子:
  6. # bash ./mysql_backup_restore.sh schema_test 2022-07-29 schema_test2
  7. # 参数校验
  8. if [ ! -n "$2" ] ;then
  9. echo "未输入足够的参数"
  10. exit 0
  11. fi
  12. CURRENT_DIR=$(cd "$(dirname "$0")";pwd)
  13. # 读取配置
  14. source ${CURRENT_DIR}/config.conf
  15. # 读取参数
  16. db=$1
  17. time=$2
  18. if [ ! -n "$3" ] ;then
  19. dest_db=${db}
  20. else
  21. dest_db=$3
  22. ${mysql} -u${db_user} -h${db_host} -p${db_password} -Bse "create schema if not exists "${dest_db}";"
  23. fi
  24. # 组合文件名与文件路径
  25. backname=${db}.${time}
  26. dumpfile=${backup_dir}${backname}
  27. # 解压数据文件
  28. tar -zxvf ${dumpfile}.tar.gz
  29. # 删除数据文件第一行,通常是警告信息
  30. sed -i '1d' ${backname}.sql
  31. # 导入到指定数据库中
  32. ${mysql} -u${db_user} -h${db_host} -p${db_password} -D${dest_db} < ${backname}.sql
  33. # 删除临时文件
  34. rm -f ${backname}.sql