Linux shell脚本013(生成配置文件)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cyan_grey/article/details/80695262
#!/bin/bash
#生成配置文件auto-ops.conf的中间件配置项,要求auto-ops.conf文件已经存在
#usage ./scriptname apahce 1.1.1.1 tomcat 1.1.1.2 jboss 1.1.1.3

###参数规范性校验


###清除原有中间件的参数配置
CONFIG=auto-ops.conf
if [ -f ${CONFIG} ];
        then
        sed -i '/\"jboss\"/,$d' auto-ops.conf
        else
        exit 2
fi


###把参数分两类写入两个文件
for i in $*
    do
        case "$i" in
            apache|tomcat|jboss)
            echo $i >>midtype
            ;;
            *)
            echo $i >>ipaddr
            ;;
        esac
    done

###生成随机密码
P1=`cat /dev/urandom | tr -cd abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ| head -c 4`
P2=`cat /dev/urandom | tr -cd   \!@\#$%0123456789| head -c 3`
P3=`cat /dev/urandom | tr -cd   \!@\#$% | head -c 1`

PASS="$P1$P2$P3"


hostname=`hostname`

###写入apache参数配置
WebConf(){
cat >>${CONFIG}<<EOF
{
                "type":"ews-$midtype",
                "host":{"ip":"$ipaddr"}
},
EOF
}

###写入jboss参数配置
JbossConf(){
cat >>${CONFIG}<<EOF

{
                "type":"eap-$midtype",
                "host":{"ip":"$ipaddr"}

                "admin-user":"jbossadmin",
                "admin-password":"$PASS",

                "node-name":["$hostname-Server1","$hostname-Server2"]
},
EOF
}

###写入tomcat参数配置
TomcatConf(){
cat >>${CONFIG}<<EOF                                                      
{
                "type":"ews-$midtype",                                    
                "host":{"ip":"$ipaddr"}                                   

                "admin-user":"tomcatadmin",                                
                "admin-password":"$PASS",                                 

                "node-name":["$hostname-Server1","$hostname-Server2"]     
},                                                                        
EOF
}
###开始写入新的中间件参数配置
cat >>${CONFIG}<<EOF
"jboss":[
EOF


###调用webconf,jbossconf,tomcatconf写入参数到配置文件
while read -u 3 midtype;read -u 5 ipaddr
    do
        case $midtype in
                apache)
                WebConf
                ;;
                tomcat)
                TomcatConf
                ;;
                jboss)
                JbossConf
                ;;
        esac
    done 3<midtype 5<ipaddr

###删除中间产出文件
rm -f midtype ipaddr jdkver

###补全配置文件结尾
cat >>${CONFIG}<<EOF
]
EOF

知识点:
sed 用法,EOF用法,函数调用,while循环两个变量的方法

猜你喜欢

转载自blog.csdn.net/cyan_grey/article/details/80695262