远程修改Nrpe脚本

远程修改Nrpe脚本

 

前言:作为一个运维人员,经常修改监控是无可避免的,改少量机器还好说,如果量特别多的话,那就不容易了。如老大一句话,修改所有机器的check_disk参数,那就傻了。我今天就遇到了,开发说要修改所有业务系统的check_swap,自己写了个脚本,可以供大家参考下。

两个文件:

1、hostlist   这个是我需要修改监控参数的主机文件;

2、editnrpe.sh  这个是我的脚本,执行脚本时,需要调用1文件;

3、scannrpe.sh  这个是我修改完之后,再扫描一下Nrpe的脚本文件;

下面的脚本实现如下功能,之前的Nrpe参数为:

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 80% -c 70%

修改后的参数为:

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 75% -c 65%

 

脚本如下:

[[email protected] ~]$ cat editnrpe.sh

#!/bin/bash
#
# This script is auto edit Nrpe
# By Only.liu

swapfile="/usr/local/nagios/etc/nrpe.cfg"

for host in `cat hostlist`
do

    ping -c 1 $host >> /dev/null 2>&1
    if [ "$?" == 0 ]; then
         echo "$host is alived!"
         ssh $host  "sudo sed -i -e '/check_swap/{s/\-w 80\%/\-w 75\%/;s/-c 70\%/-c 65\%/}' '$swapfile'"

         if [ "$?" == 0 ]; then
             echo "Swap is edited success!"
             ssh $host "grep "check_swap" $swapfile"
         fi
         ssh $host "ps aux | grep nrpe | grep -v grep | awk '{ print \$2 }' | xargs sudo kill -HUP"
         ssh $host "exit"
         echo "Nrpe restart ok!"
    fi
done
 

 

修改完之后,不放心,再扫描一下:

脚本如下:

[[email protected] ~]$ cat scannrpe.sh
#!/bin/bash
#
# This script is auto edit Nrpe
# By Only.liu

#hostlist=`cat hostlist`
swapfile="/usr/local/nagios/etc/nrpe.cfg"

for host in `cat hostlist`
do

    ping -c 1 $host >> /dev/null 2>&1
    if [ "$?" == 0 ]; then
         echo "$host is alived!"
         ssh $host  "sudo sed -n '/check_swap/p' '$swapfile'"

    fi
done

 

你可能感兴趣的:(shell,脚本,ssh,nrpe)