shell指令碼批量生成配置檔案

2022-03-23 08:03:02 字數 2448 閱讀 4868

如果管理的站點和伺服器較多的情況下,每次修改配置檔案都相當痛苦。因而想到了用shell指令碼來批量生成配置檔案和配置資料。下面這個指令碼是為了批量生成nagios監控配置檔案的乙個shell指令碼程式。其原理是事先定義乙個shell指令碼模板,然後每個需要監控的站點複製乙份模板替換掉模板檔案裡面的變數。

1、準備模板檔案webcheck.template 

more

webcheck.template

###################weburl define start###################

define service

###################weburl define end###################

變數為weburl和index

2、站點列表檔案weblist.txt

www.aaa.com \\/bbs.bbb.com \\/www.ccc.com \\/

weblist.txt有兩個field,第乙個field為網域名稱,第二個field為站點對應的url。如第乙個網域名稱為www.aaa.com/

3、批量生成指令碼檔案create.sh

[root@bogon webcheckes]# more create.sh

#!/bin/bash

path=/bin:$path:$home/bin:/sbin:/usr/bin:/usr/sbin

export path

#echo

$path

usage ()

if [ $# -gt 2 ];then

usage

exit 1fi

case"$#

"in2)

template=$1

host_list=$2

;; 1)

template='

webcheck.template

'host_list=$1

;; 0)

# template='

webcheck.template

'# host_list='

host.list

'usage

;; esac

if [ ! -f "

$" ];then

echo

"template : $ not exist!

"1>&2

exit 1fi

if [ ! -f "

$" ];then

echo

"host list : $ not exist!

"1>&2

exit 1fi

#echo $pwd/$

webtemp="

wcalltemp.txt

"rm $pwd/$

#cat $pwd/$

/bin/cat $pwd/$|

while

read weburl indexdo#

echo"$

"|grep -op '

^\d(\.\d)$

' >/dev/null

2>&1 || field='

not ip

'#if [ "$" = 'not ip' ];then #

echo

"$ not ip!

"1>&2

# exit 1#

fi#host_cfg="

$-$.cfg

"tmppage="

webtemp.txt"cp

$ $

sed -i "

s/weburl/$/g;s/index/$/g"$

/bin/cat $>>$

done

/bin/cat webcheck_org.template>webcheck_$.cfg

/bin/cat $>>webcheck_$.cfg

rm $pwd/$

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

service nagios restart

起作用的主要是這句,sed -i "s/weburl/$/g;s/index/$/g" $,說到底是sed命令的功勞。將weblist.txt裡面的內容替換掉模板裡的weburl和index變數。

4、呼叫方式

sh ./create.sh webcheck.template weblist.txt

或者

sh ./create.sh weblist.txt

如果存在大量需要手工修改配置檔案的情況下,或者批量生成一些類似的檔案時可以考慮採用此種方式。

shell指令碼批量生成配置檔案

如果管理的站點和伺服器較多的情況下,每次修改配置檔案都相當痛苦。因而想到了用shell指令碼來批量生成配置檔案和配置資料。下面這個指令碼是為了批量生成nagios監控配置檔案的乙個shell指令碼程式。其原理是事先定義乙個shell指令碼模板,然後每個需要監控的站點複製乙份模板替換掉模板檔案裡面的變...

shell指令碼批量備份交換機配置檔案

對於中小型網路來說,網路裝置相對較少,維護相對簡單,即使出現故障解決起來也相對較快。而大型網路一般結構複雜,裝置數量多,不同網路區域的裝置配置大多不同,不可能記住所有裝置配置。當修改配置後未及時儲存,某天意外斷電後,恢復起來非常麻煩。或者發生了誤操作,未能及時發現,找起來也是比較麻煩的。這時候,備份...

shell指令碼讀取配置檔案

在shell指令碼中讀取配置檔案使用 cat grep,awk和sed 比如在 eaxmple.ini中有 ftp url 127.0.0.1 223 ftp user admin ftp password ftp 則在shell指令碼中讀取配置 ftp url cat eaxmple.ini gr...