ユーザ用ツール

サイト用ツール


bash:script:13_simple_check_packets_loss

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
bash:script:13_simple_check_packets_loss [2014/11/14 10:22] matsuibash:script:13_simple_check_packets_loss [2015/05/14 00:58] (現在) – [Macの場合] matsui
行 1: 行 1:
 +====== 13 簡単なパケロスチェックプログラム ======
  
 +
 +===== Pingパケロスチェック =====
 +
 +60回ずつpnigを打ち続けるプログラム
 +毎日00:00にローテートする
 +<code console>
 +#!/bin/sh
 +
 +IP=$1
 +LOG_DIR="./logs"
 +LOG_FILE=${LOG_DIR}/${IP}_ping.log
 +LOTATE_TIME="0000" # 00:00
 +
 +if [ ! -d ${LOG_DIR} ];then
 +  mkdir ${LOG_DIR}
 +fi
 +
 +while true;
 +do
 +  date "+%Y%m%d-%H%M%S" >> ${LOG_FILE};
 +  ping ${IP} -c 60 >> ${LOG_FILE};
 +
 +  if [ "$(date "+%H%M")" = "${LOTATE_TIME}" ];then
 +    D=`date "+%Y%m%d"`
 +    LOTATE_FILE=`echo ${LOG_FILE} | sed "s/.log$/_${D}.log/g"`
 +    if [ ! -e ${LOTATE_FILE} ];then
 +      cp $LOG_FILE $LOTATE_FILE
 +      echo -n > $LOG_FILE
 +    fi
 +  fi
 +done
 +</code>
 +
 +===== Pingパケロス時Tracerouteチェック =====
 +
 +1秒毎にpingを打って、パケロスが発生した時にtracerouteを打つプログラム
 +毎日00:00にローテートする
 +<code console>
 +#!/bin/sh
 +
 +IP=$1
 +LOG_DIR="./logs"
 +LOG_FILE=${LOG_DIR}/${IP}_traceroute.log
 +LOTATE_TIME="0000" # 00:00
 +
 +if [ ! -d ${LOG_DIR} ];then
 +  mkdir ${LOG_DIR}
 +fi
 +
 +while true;
 +do
 +  ping ${IP} -c 1 -w 1 > /dev/null
 +  if [ $? -eq 0 ];then
 +    echo `date "+%Y%m%d-%H%M%S"` " Ping OK" >> ${LOG_FILE};
 +  else
 +    echo `date "+%Y%m%d-%H%M%S"` " Ping NG" >> ${LOG_FILE};
 +    traceroute -n ${IP} >> ${LOG_FILE};
 +  fi
 +
 +  if [ "$(date "+%H%M")" = "${LOTATE_TIME}" ];then
 +    D=`date "+%Y%m%d"`
 +    LOTATE_FILE=`echo ${LOG_FILE} | sed "s/.log$/_${D}.log/g"`
 +    if [ ! -e ${LOTATE_FILE} ];then
 +      cp $LOG_FILE $LOTATE_FILE
 +      echo -n > $LOG_FILE
 +    fi
 +  fi
 +
 +sleep 1
 +done
 +</code>
 +
 +===== Macの場合 =====
 +
 +Macはpingのオプションがちょっと違うので、ちょっとだけ変更する。
 +
 +<code console>
 + ping ${IP} -c 1 -w 1 > /dev/null
 +    ↓
 + ping -c 1 -t 1 ${IP} > /dev/null
 +</code>
 +
 +{{tag>bash network}}