====== 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
{{tag>bash network}}