• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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

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

    您可能感兴趣的文章:
    • Shell脚本实现批量替换文件内容
    • 使用Linux shell脚本实现FTP定时执行批量下载指定文件
    • Shell脚本批量修改文件后缀名代码分享
    • Shell脚本批量重命名文件后缀的3种实现
    • shell脚本中使用iconv实现批量文件转码的代码分享
    • Shell脚本遍历目录并批量修改文件编码
    • linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法
    • 使用iconv批量改变文件编码的shell脚本
    • 批量转换目录下文件编码的shell脚本代码
    • Shell脚本之文件批量创建与修改的简单方法
    上一篇:基础的Linux Shell技巧小结
    下一篇:Shell脚本去重的几种方法实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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