ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

bash:script:13_simple_check_packets_loss

13 簡単なパケロスチェックプログラム

Pingパケロスチェック

60回ずつpnigを打ち続けるプログラム
毎日00:00にローテートする

#!/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

Pingパケロス時Tracerouteチェック

1秒毎にpingを打って、パケロスが発生した時にtracerouteを打つプログラム
毎日00:00にローテートする

#!/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

Macの場合

Macはpingのオプションがちょっと違うので、ちょっとだけ変更する。

 ping ${IP} -c 1 -w 1 > /dev/null
    ↓
 ping -c 1 -t 1 ${IP} > /dev/null
bash/script/13_simple_check_packets_loss.txt · 最終更新: 2015/05/14 09:58 by matsui