1. 程式人生 > >Linux shell指令碼013(生成配置檔案)

Linux shell指令碼013(生成配置檔案)

#!/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迴圈兩個變數的方法