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