目的:实现批量主机文件和服务的创建,将服务就写到了主机文件中;
用户change.sh linux.template(主机服务模版) list.txt (主机IP对应列表)
catc change.sh
usage () { echo -en "USAGE: $0 [host list] or $0 [template] [host list]\nFor ex ample: $0 host.template host.list(Field : [IP] [HOST NAME])\n" 1>&2 exit 1 } if [ $# -gt 2 ];then usage exit 1 fi case "$#" in 2) template=$1 host_list=$2 ;; 1) template='host.template' host_list=$1 ;; 0) # template='host.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 cat ${host_list}| while read ip hostname 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" cp ${template} ${host_cfg} sed -i "s/HOST_NAME/${hostname}/g;s/ADDRESS/${ip}/g" ${host_cfg} donecat linux.template
define host{
use linux-server,hosts-pnp host_name HOST_NAME alias HOST_NAME address ADDRESS } ############################################################################### ############################################################################### # # SERVICE DEFINITIONS # ############################################################################### ############################################################################### # Define a service to "ping" the local machine define service{ use local-service ; Name of service template to use host_name HOST_NAME service_description PING check_command check_ping!100.0,20%!500.0,60% } # Define a service to check the disk space of the root partition # on the local machine. Warning if < 20% free, critical if # < 10% free space on partition. define service{ use local-service,services-pnp ; Name of service template to use host_name HOST_NAME service_description Root Partition check_command check_nrpe!check_sda1 }cat list.txt
192.168.1.2 linuxhost
192.188.22.33 winhost
执行 ./change.sh linux.template list.txt 即可