nagios最重要也是根本的配置文件是nagios.cfg。这个配置文件里设置了单个监控服务器配置文件地址,一般是
cfg_file=$NAGIOS_HOME/etc/object/xxxxxxx.cfg
1,首先我们有100个主机名。现在需要100个配置文件,以主机名缩写形式为文件名。
for i in $(cat tmp);do filename=$(echo $i | cut -d. -f1 | sed -e 's/-//g' -e 's/[0-9]db[0-9]/&.cfg/g');cp -f ./xxxxxx.cfg $filename;sed -i -e "s/xxxxxxx's HOSTNAME/$i/g" -e "s/xxxxxxx's ALIAS/${filename/.cfg/}/g" $filename ;done
2,其次,跟换IP地址,这里需要用PING根据主机名获取IP地址。然后更改配置文件里的原IP地址。
for i in $(cat tmp);do ip=$(ping -c 1 $i | grep PING | cut -d\) -f1 | cut -d\( -f2); filename=$(echo $i | cut -d. -f1 | sed -e 's/-//g' -e 's/[0-9]db[0-9]/&.cfg/g'); sed -i -e "s/xxx.xxx.xxx.xxx/$ip/g" $filename;done3,再次,把所有的服务器配置文件地址添加到nagios.cfg里。这里使用到了SED的a参数(i可用于在一行之前添加)。
for i in eanlt*;do sed -i "$(grep -n xxxxxxxxxxxxxx.cfg ../nagios.cfg | cut -d: -f1) a cfg_file=$(pwd)/$i" ../nagios.cfg;done