linux中nagios配置文件,Shell脚本实现批量生成nagios配置文件

如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦。因而想到了用shell脚本来批量生成配置文件和配置数据。下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序。其原理是事先定义一个shell脚本模板,然后每个需要监控的站点复制一份模板替换掉模板文件里面的变量。

1、准备模板文件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、站点列表文件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 () {

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},说到底是sed命令的功劳。将weblist.txt里面的内容替换掉模板里的WEBURL和INDEX变量。

4、调用方式

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

或者

sh ./create.sh weblist.txt

如果存在大量需要手工修改配置文件的情况下,或者批量生成一些类似的文件时可以考虑采用此种方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值