2010-11-30 3 views
1

私は2台のマシン(mAとmB)の間でpingを実行し、これをNagios(mC)に報告する方法を探しています。Nagiosが他の2台のLinuxマシン間でpingを報告できるようにするBashスクリプト

私の現在の考えは、マシンをcronジョブにpingしてファイルに出力し、Nagiosがそのファイルを読むために使用できる別のbashスクリプトを持つBASHスクリプトを書くことです。これは、これを行うには最高の/正しい方法のように感じることはありませんか?ここで

は、私はcronジョブで実行する予定のスクリプトです:しかしトレースルートを使用して、私は遅くのpingを生成し、これは可能だと思うについて?、何を達成するための別の方法は

#!/bin/bash 

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] 
then 
    echo $0: usage: $0 file? ip? pingcount? deadline? 
    exit 126 
else 
    FILE=$1 
    IP=$2 
    PCOUNT=$3 
    DLINE=$4 

    while read line 
    do 
     if [[ $line == rtt* ]] 
     then 

     #replace forward slash with underscore 
     line=${line////_} 

     #replace spaces with underscore 
     line=${line// /_} 

     #get the 8 item when splitting string on underscore 
     #echo $line| cut -d'_' -f 8 >> $FILE #Append 
     #echo $line| cut -d'_' -f 8 > $FILE #Overwrite 
     echo $line| cut -d'_' -f 8 
     fi 

    done < <(ping $IP -c $PCOUNT -q -w $DLINE) #-q output summary/-w deadline/-c pint count 

ありI I欲しいです?

注:私はNagiosがマシンに直接pingを実行できることを知っていますが、これは私がやりたいことではなく、私が欲しいことを教えてくれません。また、これは今までの私の2番目のスクリプトなので、恐らくごみです。また、ICMPがブロックされた場合、どのような選択肢がありますか?

答えて

0

NRPEとcheck_pingを見ましたか?これにより、ナギオス機(mC)がmAにping mBを要求し、mAがその結果をmCに報告することが可能になる。これを行うには、NRPEとnagios-pluginsをmAでインストールして設定する必要があります。

+0

私はスクリプトを書く前にそれについて知っていました...まだbashを学ぶのは面白かったです。 –

関連する問題