私は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がブロックされた場合、どのような選択肢がありますか?
私はスクリプトを書く前にそれについて知っていました...まだbashを学ぶのは面白かったです。 –