文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Shell脚本怎么实现批量生成nagios配置文件

2023-06-09 18:22

关注

这篇文章主要讲解了“Shell脚本怎么实现批量生成nagios配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本怎么实现批量生成nagios配置文件”吧!

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

准备模板文件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

站点列表文件weblist.txt

代码如下:


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


weblist.txt有两个field,第一个field为域名,第二个field为站点对应的url。如第一个域名为www.aaa.com/

批量生成脚本文件create.sh

[root@bogon webcheckes]# more create.sh #!/bin/bash PATH=/bin:$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin export PATH#echo $PATHusage () {     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 indexdo     #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}.cfgrm $PWD/${WEBTEMP}/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgservice nagios restart

起作用的主要是这句,sed -i "s/WEBURL/${weburl}/g;s/INDEX/${index}/g" ${tmppage},说到底是sed命令的功劳。将weblist.txt里面的内容替换掉模板里的WEBURL和INDEX变量。

调用方式

代码如下:


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


  或者

代码如下:


sh ./create.sh weblist.txt


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

感谢各位的阅读,以上就是“Shell脚本怎么实现批量生成nagios配置文件”的内容了,经过本文的学习后,相信大家对Shell脚本怎么实现批量生成nagios配置文件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯