====== 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}}