Linux shell指令碼013(生成配置檔案)
阿新 • • 發佈:2018-12-07
#!/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 \[email protected]\#$%0123456789| head -c 3`
P3=`cat /dev/urandom | tr -cd \[email protected]\#$% | 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迴圈兩個變數的方法