批量导入数据库脚本

import.sh
将宝塔面板自动备份的数据库文件批量创建数据库并导入。

#!/bin/bash

#---------------------------------------
# 批量导入数据库
# author: SenSen 1050575278
# date: 2022/03/28
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------

read -p "Warning! Enter 'y' to continue : " input

#判断是否存在参数,不存在则取消
if [ "$input" == 'y' ] || [ "$input" == 'Y' ]; then

  #连接数据库
  mysqlPath=`which mysql`
  db_con="${mysqlPath} -uroot -pxxx"

  #获取备份数据所在目录
  dir=/backup/mysql/
  cd /backup/mysql

  #自动获取系统目录文件 仅可包含oa系统文件
  sysDir=`ls /backup/mysql`

  for db in ${sysDir}
    do
      #获取db的名字 db_t002_20220327_223004.sql.gz
      ext=${db##*.}
      if [ "${ext}" != "sql" ]; then
        dbName=${db:3:4}
        sqlName=${db:0:27}
        gzip -d ${db}
        ${db_con} -e "create database ${dbName} default character set utf8mb4 default collate utf8mb4_general_ci;"
        ${db_con} -e "use ${dbName}; source ${dir}${sqlName};"
        echo "${dbName} done" >> import.txt
      fi
    done
else
  echo "Error: invalid input"
fi

Tags: 脚本

添加新评论