MySql教程

mysql数据库初始化脚本分组批量执行

本文主要是介绍mysql数据库初始化脚本分组批量执行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1 #!/bin/bash
  2 
  3 :<<!
  4 例如:./imp.sh  01-Db_init gp01
  5 
  6 !
  7 
  8 if [ ! $2  ];then
  9 
 10    echo -e "\n请输入初始化数据库分组:如:./imp.sh  01-Db_init gp01 \n"
 11    exit 0
 12 
 13 fi
 14 
 15 case $2 in   #设置初始化数据库分组信息。
 16 
 17   gp01)
 18       gp=(nc_config nc_job nc_notifier)
 19       mhost="10.1.*.*"
 20       mport="3366"
 21       muser="root"
 22       mpasswd="123456"
 23   ;;
 24 
 25   gp02)
 26       gp=(nc_resource rc_report)
 27       mhost="10.1.*.*"
 28       mport="3366"
 29       muser="root"
 30       mpasswd="123456"
 31   ;;
 32 
 33   gp03)
 34       gp=(rc_tncm rc_opsf rc_llsf_province)
 35       mhost="10.1.*.*"
 36       mport="3366"
 37       muser="root"
 38       mpasswd="123456"
 39   ;;
 40 
 41   gp04)
 42       gp=(hlsf_flow wmsf_flow)
 43       mhost="10.1.*.*"
 44       mport="3366"
 45       muser="root"
 46       mpasswd="123456"
 47   ;;
 48 
 49   gp00)
 50       gp=(rc_llsf_province)
 51       mhost="10.1.*.*"
 52       mport="3366"
 53       muser="root"
 54       mpasswd="123456"
 55   ;;
 56 
 57   *)
 58       echo -e "\n$0 $@ ,请确认输入正确的数据库初始化分组名!\n"
 59 esac
 60 
 61 #gp=(nc_resource idp)
 62 
 63 echo -e "\n\n|>初始化数据库列表-$2:${gp[*]}\n|>目标地址:$mhost:$mport\n|>执行时间:$(date "+%Y-%m-%d %H:%M:%S")\n" 2>&1 | tee -a gimp_log_$(date "+%Y-%m-%d").log
 64 
 65 bdir=`pwd`
 66 
 67 for i in ${gp[*]}
 68 
 69 do
 70 
 71   echo -e "\n:>初始化数据库:[$i]\n"
 72 
 73   for fdir in `ls $bdir/$1`  #遍历脚本目录。
 74   
 75   do
 76 
 77     for cdir in `ls $bdir/$1/$fdir`
 78 
 79     do
 80       
 81       #echo ${cdir#*-}
 82       if [ $i == ${cdir#*-} ] &&  ls $bdir/$1/$fdir/$cdir/*.sql >/dev/null 2>&1; #判断是否是分组目标库的脚本,并该目录下有可执行的sql文件。
 83 
 84       then
 85         
 86         for sql in `ls $bdir/$1/$fdir/$cdir/*.sql`  #遍历目标路径下的sql文件并按照顺序执行。
 87         
 88         do
 89           echo  -e "\n=>执行sql:$sql"
 90           `mysql -h$mhost -P$mport -u$muser -p$mpasswd  -e "source $sql ;"`
 91 
 92         #echo `ls $bdir/$1/$fdir/$cdir`
 93 
 94         done
 95       fi
 96 
 97     done
 98 
 99   done
100 
101 done 2>&1 | tee -a gimp_log_$(date "+%Y-%m-%d").log

 

这篇关于mysql数据库初始化脚本分组批量执行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!