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