#!/bin/sh if [ $# != 1 ] ; then echo "参数错误,请重新输入" exit 1; fi MYDATE=`date +%F` MYSQL_PATH=$1 #指定的目录 if [ ! -d ${MYSQL_PATH} ]; then echo "目录不存在请重新输入" exit 1; fi LOG_FILE=$1/exec_${MYDATE}.log confirm= db_pass= read -p "你输入的文件的目录为 [${MYSQL_PATH}],确认继续 [y/n]: " confirm if [ "$confirm" = "y" ] && [ -n $confirm ] ; then if [ ! $db_pass ] ; then #如果没有设置密码 # stty -echo #密码输入保护关闭显示 read -p "请输入数据库密码:" db_pass read -p "请选择数据库:" db_name echo -e "\n" echo $db_name echo -e "\n" # stty echo fi else echo "您已经取消操作!" exit fi for file in ${MYSQL_PATH}/* do if [ -f "$file" ] ; then postfix=`echo $file | awk -F'.' '{print "."$NF}'` if [ $postfix = ".sql" ] ; then mysql -uroot -p$db_pass -P3306 $db_name --default-character-set=utf8 < $file >& ${MYSQL_PATH}/temp.log echo $file echo "[$file]" >>${LOG_FILE} cat ${MYSQL_PATH}/temp.log >>${LOG_FILE} #输出执行日志 error=`grep ERROR ${MYSQL_PATH}/temp.log` #读取错误日志信息 if [ -n "$error" ] ; then #如果有错误就退出程序 echo $error exit fi fi fi done rm -rf ${MYSQL_PATH}/temp.log echo "所有文件执行成功" echo "所有文件执行成功" >> ${LOG_FILE}
批量执行SQL
最新推荐文章于 2023-07-20 17:45:55 发布