批量给mycat配置文件增加数据库节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
 
#修改mysql schema
mycat_schema_file=/opt/mycat/conf/schema.xml
cp $mycat_schema_file ${mycat_schema_file}.bak
 
database_list='message xuejie'
#找到usercenter的行号,由于schema成对出现有可能换行,在其上一行增加schema更可靠
last_schema_row_number=`sed -n  '/<schema name="usercenter"/=' $mycat_schema_file`
if [ ! -z "$last_schema_row_number" ];
then
    last_schema_row_number=`expr ${last_schema_row_number} - 1`
    for database in $database_list
    do
        new_schema_row_number=`sed -n "/<schema name=\"$database\"/=" $mycat_schema_file`
        if [ -z "$new_schema_row_number" ];
        then
            shell_cmd='<schema name="'${database}'" checkSQLschema="false" sqlMaxLimit="20000" dataNode="'${database}'"></schema>'
            sed -i "${last_schema_row_number}a ${shell_cmd}" $mycat_schema_file
            last_schema_row_number=`expr ${last_schema_row_number} + 1`
            sed -i "${last_schema_row_number}s/^/       /g"  $mycat_schema_file
        fi
    done
fi
 
#找到usercenter的行号,在下面增加dataNode
last_node_row_number=`sed -n  '/database="usercenter"/=' $mycat_schema_file`
if [ ! -z "$last_node_row_number" ];
then
    for database in $database_list
    do
        new_node_row_number=`sed -n  "/database=\"$database\"/=" $mycat_schema_file`
        if [ -z "$new_node_row_number" ];
        then
            shell_cmd='<dataNode name="'$database'" dataHost="localhost1" database="'$database'" />'
            sed -i "${last_node_row_number}a ${shell_cmd}" $mycat_schema_file
            last_node_row_number=`expr ${last_node_row_number} + 1`
            sed -i "${last_node_row_number}s/^/       /g"  $mycat_schema_file
        fi
    done
fi

  将以上代码保存至multi_add_database_to_mycat_conf.sh

1
2
3
4
5
6
#赋予执行权限
chmod +x multi_add_database_to_mycat_conf.sh
#执行脚本
/bin/bash multi_add_database_to_mycat_conf.sh
#执行脚本(打印每行执行debug过程)
/bin/bash -x multi_add_database_to_mycat_conf.sh

  

posted @   雪洁  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示