2 台のマシン (mA と mB) の間で ping を実行し、これを (mC で) Nagios に報告する代わりの方法を探しています。
私の現在の考えは、cron ジョブでマシンに ping を実行する BASH スクリプトを作成し、データをファイルに出力してから、Nagios がそのファイルを読み取るために使用できる別の bash スクリプトを作成することです。しかし、これはこれを行うための最良/正しい方法のようには感じませんか?
cron ジョブで実行する予定のスクリプトは次のとおりです。
#!/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
トレースルートの使用について考えましたが、これはpingが遅くなると思いますか?、私が望むものを達成する別の方法はありますか?
注: Nagios がマシンに直接 ping を実行できることは知っていますが、これは私がやりたいことではなく、何をしたいのか教えてくれません。また、これは私の 2 番目のスクリプトなので、おそらくゴミです。また、ICMP がブロックされた場合、どのような代替手段がありますか?