diff --git a/timer.sh b/timer.sh index b79629a..bb43acb 100755 --- a/timer.sh +++ b/timer.sh @@ -21,7 +21,7 @@ ajuda() { echo "Desenvolvido por Rodrigo Martins" echo echo "$0 NUM HOST" - echo "NUM = Total de pacotes que esperar retorno" + echo "NUM = Total de pacotes que esperar retorno MIN=2" echo "HOST = Opcional mas pode ser informado um host para disparo" echo exit @@ -31,16 +31,14 @@ disparar() { local pkts=$1 local destino=$2 - echo - [ -z "${destino}" ] && destino="uw.edu" - echo ">> Disparando contra [ ${destino} ( ${pkts} ) ]" MS=$( ping -c ${pkts} ${destino} 2>> log.txt | grep -Ewo 'time=([0-9]){1,}\ ms' | sed -r 's/time=|ms//g' ) } gerar() { - + local pkts=$1 + local destino=$2 local i=1 local RTT local SRTT @@ -49,26 +47,31 @@ gerar() { local RTO local flag=0 - echo " RTT SRTT SVAR RTO" - for RTT in ${MS} + for i in $( seq 1 ${pkts} ) do - [ ${flag} -eq 1 ] && { - #otimizar, remover |, e.g. let SRTT=(1-$ALFA)*$SRTT + $ALFA*$RTT - #SRTT=$(((1-ALFA)*SRTT+ALFA*RTT)) - SRTT=$(echo "(1-${ALFA})*$SRTT+${ALFA}*${RTT}" | bc) - VAR=$(echo "${RTT} - ${SRTT}" | bc ) - #otmizar, maneira mais inteligente de remover sinal - VAR=$(echo $VAR | sed 's/^-//') - SVAR=$(echo "(1-${BETA})*${SVAR}+${BETA}*${VAR}" | bc ) - RTO=$(echo "${SRTT}+4*${SVAR}" | bc) - } || { - RTT0=$RTT - SRTT=$RTT0 - let SVAR=$RTT0/2 - RTO=0 - flag=1 - } - printf "%04d %07d %20f %20f %20f\n" $((i++)) ${RTT} ${SRTT} ${SVAR} ${RTO} + disparar 1 ${destino} + RTT=$MS + [ ! -z "${RTT}" ] && { + [ ${flag} -eq 1 ] && { + #otimizar, remover |, e.g. let SRTT=(1-$ALFA)*$SRTT + $ALFA*$RTT + #SRTT=$(((1-ALFA)*SRTT+ALFA*RTT)) + SRTT=$(echo "(1-${ALFA})*$SRTT+${ALFA}*${RTT}" | bc) + VAR=$(echo "${RTT} - ${SRTT}" | bc ) + #otmizar, maneira mais inteligente de remover sinal + VAR=$(echo $VAR | sed 's/^-//') + SVAR=$(echo "(1-${BETA})*${SVAR}+${BETA}*${VAR}" | bc ) + RTO=$(echo "${SRTT}+4*${SVAR}" | bc) + } || { + RTT0=${RTT} + SRTT=${RTT0} + SVAR=$((RTT0/2)) + RTO=0 + flag=1 + } + printf "%04d %07d %20f %20f %20f\n" $((i++)) ${RTT} ${SRTT} ${SVAR} ${RTO} + } || + printf "%04d %s\n" $((i++)) "PERDIDO" + done } @@ -76,19 +79,20 @@ gerar() { # validar se quantidade de pacotes enviadas é numerico -# pegar somente dois primeiros limitando a ate 99 TPKTS=$1 -#TPKTS=${TPKTS:0:2 } TPKTS=$( echo ${TPKTS} | grep -Ewo '^[0-9]+$' ) -[ $# -le 0 ] || [ -z ${TPKTS} ] && ajuda +[ $# -le 0 ] || [ -z ${TPKTS} ] || [ ${TPKTS} -le 1 ] && ajuda DHOST=$2 +[ -z "${DHOST}" ] && DHOST="uw.edu" +echo ">> Disparando contra [ ${DHOST} ( ${TPKTS} ) ]" - -disparar ${TPKTS} $2 -gerar +echo " RTT SRTT SVAR RTO" +# +#disparar ${TPKTS} $2 +gerar ${TPKTS} ${DHOST} #considerar perdas