這篇文章主要講解了“Shell腳本怎么實(shí)現(xiàn)批量生成nagios配置文件”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Shell腳本怎么實(shí)現(xiàn)批量生成nagios配置文件”吧!
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比黃岡網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式黃岡網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋黃岡地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。如果管理的站點(diǎn)和服務(wù)器較多的情況下,每次修改配置文件都相當(dāng)痛苦。因而想到了用shell腳本來(lái)批量生成配置文件和配置數(shù)據(jù)。下面這個(gè)腳本是為了批量生成nagios監(jiān)控配置文件的一個(gè)shell腳本程序。其原理是事先定義一個(gè)shell腳本模板,然后每個(gè)需要監(jiān)控的站點(diǎn)復(fù)制一份模板替換掉模板文件里面的變量。
1、準(zhǔn)備模板文件webcheck.template
more webcheck.template ###################WEBURL define start################### define service{ use generic-service ; Name of service template to use host_name webcheck service_description WEBURL check_command check_webpage!-H WEBURL -u INDEX is_volatile 0 max_check_attempts 3 check_interval 1 retry_interval 1 check_period 24x7 notification_interval 5 notification_period 24x7 notification_options w,u,r,c contact_groups admins } ###################WEBURL define end###################
變量為WEBURL和INDEX
2、站點(diǎn)列表文件weblist.txt
代碼如下:
www.aaa.com \\/
bbs.bbb.com \\/
www.ccc.com \\/
weblist.txt有兩個(gè)field,第一個(gè)field為域名,第二個(gè)field為站點(diǎn)對(duì)應(yīng)的url。如第一個(gè)域名為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 () { echo -en "USAGE: $0 [web list] or $0 [template] [web list]\nFor example: $0 host.template host.list(Field : [WEB URL] [INDEX WEB PAGE])\n" 1>&2 exit 1 } if [ $# -gt 2 ];then usage exit 1 fi case "$#" in 2) template=$1 host_list=$2 ;; 1) template='webcheck.template' host_list=$1 ;; 0) # template='webcheck.template' # host_list='host.list' usage ;; esac if [ ! -f "${template}" ];then echo "template : ${template} not exist!" 1>&2 exit 1 fi if [ ! -f "${host_list}" ];then echo "host list : ${host_list} not exist!" 1>&2 exit 1 fi #echo $PWD/${host_list} WEBTEMP="wcalltemp.txt" rm $PWD/${WEBTEMP} #cat $PWD/${host_list} /bin/cat $PWD/${host_list}| while read weburl index do #echo "${ip}"|grep -oP '^\d{1,3}(\.\d{1,3}){3}$' >/dev/null 2>&1 || Field='not ip' #if [ "${Field}" = 'not ip' ];then # echo "${ip} not ip!" 1>&2 # exit 1 #fi #host_cfg="${hostname}-${ip}.cfg" tmppage="webtemp.txt" cp ${template} ${tmppage} sed -i "s/WEBURL/${weburl}/g;s/INDEX/${index}/g" ${tmppage} /bin/cat ${tmppage}>>${WEBTEMP} done /bin/cat webcheck_org.template>webcheck_${host_list}.cfg /bin/cat ${WEBTEMP}>>webcheck_${host_list}.cfg rm $PWD/${WEBTEMP} /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg service nagios restart
起作用的主要是這句,sed -i "s/WEBURL/${weburl}/g;s/INDEX/${index}/g" ${tmppage},說(shuō)到底是sed命令的功勞。將weblist.txt里面的內(nèi)容替換掉模板里的WEBURL和INDEX變量。
4、調(diào)用方式
代碼如下:
sh ./create.sh webcheck.template weblist.txt
或者
代碼如下:
sh ./create.sh weblist.txt
如果存在大量需要手工修改配置文件的情況下,或者批量生成一些類似的文件時(shí)可以考慮采用此種方式。
感謝各位的閱讀,以上就是“Shell腳本怎么實(shí)現(xiàn)批量生成nagios配置文件”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Shell腳本怎么實(shí)現(xiàn)批量生成nagios配置文件這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!