Skip to content

Instantly share code, notes, and snippets.

@editnuki
Created July 4, 2012 07:04
Show Gist options
  • Select an option

  • Save editnuki/3045814 to your computer and use it in GitHub Desktop.

Select an option

Save editnuki/3045814 to your computer and use it in GitHub Desktop.
引数を利用してpingの試行回数、ホスト、時間を指定して行う死活監視スクリプト
#!/bin/bash
FILE="/home/user/shell/deadscript/ping_result.txt"
PACKET_LOSS_FILE="/home/user/shell/deadscript/ping_result_packet_loss.txt"
PACKET_TIME_FILE="/home/user/shell/deadscript/ping_result_time.txt"
PING_RESULT=`ping -c $1 $2 > $FILE`
RESULT_LOSS=`cat $FILE | tail -2 | head -1 | awk '{print $6}' | sed 's/\%//g' > $PACKET_LOSS_FILE`
RESULT_TIME=`cat $FILE | tail -2 | head -1 | awk '{print $10}' | sed 's/ms//g' > $PACKET_TIME_FILE`
LOSS=`cat $PACKET_LOSS_FILE`
TIME=`cat $PACKET_TIME_FILE`
RMFILE=`rm -f $FILE`
#パケロスが100かどうかで死活監視
if [ $LOSS -lt 100 ];then
#パケットロスが100未満でもロス率が50%を超えていたらアラート
if [ $LOSS -lt 50 ];then
#pingの処理時間で応答確認を行う。第三引数の値よりも高い場合障害
if [ $TIME -lt $3 ];then
echo "$2 is OK. time is $TIME ms"
else
echo "time is too long to $2. time is $TIME ms"
fi
else
echo "PACKET LOSS HIGH! $LOSS % packet loss"
fi
else
echo "$2 is host down or $2 network is Obstruction. $LOSS % packet loss"
fi
RMPACKET_LOSS_FILE=`rm -f $PACKET_LOSS_FILE`
RMPACKET_TIME_FILE=`rm -f $PACKET_TIME_FILE`
@editnuki
Copy link
Copy Markdown
Author

editnuki commented Jul 4, 2012

第一引数が試行回数
第二引数が監視先ホスト名
第三引数が応答時間

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment