最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本實現(xiàn)批量生成nagios配置文件

 更新時間:2015年07月10日 09:02:59   投稿:junjie  
這篇文章主要介紹了Shell腳本實現(xiàn)批量生成nagios配置文件,本文使用配置文件模板加上文件替換的方法實現(xiàn)批量生成配置文件,需要的朋友可以參考下

如果管理的站點和服務(wù)器較多的情況下,每次修改配置文件都相當痛苦。因而想到了用shell腳本來批量生成配置文件和配置數(shù)據(jù)。下面這個腳本是為了批量生成nagios監(jiān)控配置文件的一個shell腳本程序。其原理是事先定義一個shell腳本模板,然后每個需要監(jiān)控的站點復(fù)制一份模板替換掉模板文件里面的變量。

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

復(fù)制代碼 代碼如下:

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

weblist.txt有兩個field,第一個field為域名,第二個field為站點對應(yīng)的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里面的內(nèi)容替換掉模板里的WEBURL和INDEX變量。

4、調(diào)用方式

復(fù)制代碼 代碼如下:

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

  或者
復(fù)制代碼 代碼如下:

sh ./create.sh weblist.txt

  如果存在大量需要手工修改配置文件的情況下,或者批量生成一些類似的文件時可以考慮采用此種方式。

相關(guān)文章

  • Linux 中的gunzip命令

    Linux 中的gunzip命令

    gunzip是個使用廣泛的解壓縮程序,它用于解開被gzip壓縮過的文件,這些壓縮文件預(yù)設(shè)最后的擴展名為.gz。下面通過本文給大家分享Linux 中的gunzip命令,一起看看吧
    2017-09-09
  • Cygwin下安裝vim后,vim中退格鍵無法正常使用的解決方法

    Cygwin下安裝vim后,vim中退格鍵無法正常使用的解決方法

    下面小編就為大家?guī)硪黄狢ygwin下安裝vim后,vim中退格鍵無法正常使用的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Shell腳本中$符號的嵌套使用方法小結(jié)

    Shell腳本中$符號的嵌套使用方法小結(jié)

    在編寫Shell腳本時,通過嵌套使用$符號,間接獲取變量或表達式的值的具體方法,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-05-05
  • Linux Shell 腳本編程入門教程

    Linux Shell 腳本編程入門教程

    Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),Shell是用戶與Linux操作系統(tǒng)溝通的橋梁,對本文感興趣的朋友一起看看吧
    2015-11-11
  • Shell中的${}、##和%%使用范例

    Shell中的${}、##和%%使用范例

    這篇文章主要介紹了Shell中的${}、##和%%使用范例,本文給出了不同情況下得到的結(jié)果,需要的朋友可以參考下
    2015-04-04
  • 使用Linux shell腳本實現(xiàn)FTP定時執(zhí)行批量下載指定文件

    使用Linux shell腳本實現(xiàn)FTP定時執(zhí)行批量下載指定文件

    使用FTP定時批量下載指定文件的shell腳本,具體實例介紹如下所示,需要的朋友參考下吧
    2017-04-04
  • Shell?AWK編程的基本介紹和使用詳解

    Shell?AWK編程的基本介紹和使用詳解

    AWK可以看成一門獨立的語言,它擁有語言的基本特征,換句話說AWK可以寫出極其繁瑣和復(fù)雜的程序,AWK的語法比Shell的語法還難以接收,這篇文章主要介紹了Shell?AWK編程的介紹和基本使用,需要的朋友可以參考下
    2022-06-06
  • 使用find命令快速定位配置文件位置

    使用find命令快速定位配置文件位置

    大家知道在配置的時候咱們經(jīng)常需要修改配置文件,甚至現(xiàn)在的開發(fā)就是配配配,記又記不住,每次自己查找太費時間,最近學(xué)會了一個命令-find,現(xiàn)在分享以下,本文以nginx為例子給大家詳細介紹,對find命令定位配置文件位置相關(guān)知識感興趣的朋友一起看看吧
    2022-12-12
  • 使用shell腳本取出服務(wù)器圖片的方法

    使用shell腳本取出服務(wù)器圖片的方法

    Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。下面通過本文給大家介紹使用shell腳本取出服務(wù)器圖片的方法,需要的朋友參考下吧
    2017-12-12
  • 常用Linux Shell進階部分小結(jié)

    常用Linux Shell進階部分小結(jié)

    這篇文章主要介紹了常用Linux Shell進階部分小結(jié),歡迎收藏,隨看隨記,需要的朋友可以參考下
    2015-07-07

最新評論

青神县| 罗源县| 宜君县| 隆安县| 彩票| 晋江市| 新平| 灵台县| 兴安盟| 乐平市| 扎鲁特旗| 张家川| 浙江省| 讷河市| 资溪县| 江陵县| 丽江市| 门源| 新源县| 上杭县| 正蓝旗| 兴义市| 桃源县| 赫章县| 常德市| 鸡泽县| 陇西县| 瑞昌市| 万宁市| 安顺市| 营山县| 汕头市| 成安县| 当阳市| 西安市| 德惠市| 玉山县| 河源市| 寿宁县| 南城县| 文登市|