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