Escreva um script que receba
dois endereços para “pingar” e a quantidade de mensagens ICMP
que deverão ser enviadas. Ao final, apresentar:
1) A quantidade de pacotes
enviados (para cada um)
2) A quantidade de pacotes
recebidos (para cada um)
3) Qual deles tem a menor
perda percentual
4) Qual deles tem o menor
tempo de RTT
Segue script que fiz. O problema é que quando executo o script em uma máquina pela primeira vez o resultado dos itens 1 e2 saem corretos, na segunda vez os itens pegam os valores da vez anterior, e assim por todas as vezes que eu executo o scritp. Alguém tem alguma ideia do que pode estar acontecendo? Segue scritp abaixo.
Desde já obrigado pela ajuda.
#variaveis
ENDER1="0"
ENDER2="0"
QTDEMSG="0"
PING="/bin/ping"
ARQEND1="saida1_tarefa6"
ARQEND2="saida2_tarefa6"
PCTENV1=`cat saida1_tarefa6 |grep packets |awk '{print $1}'`
PCTENV2=`cat saida2_tarefa6 |grep packets |awk '{print $1}'`
PCTRCV1=`cat saida1_tarefa6 |grep received |awk '{print $4}'`
PCTRCV2=`cat saida2_tarefa6 |grep received |awk '{print $4}'`
PCTLOSS1=`cat saida1_tarefa6 |grep loss |awk '{print $6}' |awk -F'%' '{print $1}'`
PCTLOSS2=`cat saida2_tarefa6 |grep loss |awk '{print $6}' |awk -F'%' '{print $1}'`
RTT1=`cat saida1_tarefa6 |grep rtt |awk '{print $4}' |awk -F'/' '{print $1}' |awk -F'.' '{print $1}'`
RTT2=`cat saida2_tarefa6 |grep rtt |awk '{print $4}' |awk -F'/' '{print $1}' |awk -F'.' '{print $1}'`
#codigo
clear
echo ""
echo -n "Insira o primeiro endereco para verificacao: "; read ENDER1;
echo -n "Insira o segundo endereco para verificacao: "; read ENDER2;
echo -n "Quantas mensagens ICMP enviadas? "; read QTDEMSG;
$PING $ENDER1 > $ARQEND1 -c $QTDEMSG
$PING $ENDER2 > $ARQEND2 -c $QTDEMSG
Menu(){
echo ""
echo "1 - A quantidade de pacotes enviados"
echo "2 - A quantidade de pacotes recebidos"
echo "3 - Menor perda percentual"
echo "4 - Menor tempo de RTT"
echo "5 - Sair"
echo -e "Escolha uma das opcoes: \c"
read OPCAO
case $OPCAO in
1) echo "====================================================="
echo "Segue abaixo pacotes enviados: "
echo "$ENDER1 teve $PCTENV1 pacotes enviados"
echo "$ENDER2 teve $PCTENV2 pacotes enviados"
echo "====================================================="
Menu
;;
2) echo "====================================================="
echo "Segue abaixo pacotes recebidos: "
echo "$ENDER1 teve $PCTRCV1 pacotes recebidos"
echo "$ENDER2 teve $PCTRCV2 pacotes recebidos"
echo "====================================================="
Menu
;;
3) if [ $PCTLOSS1 -le $PCTLOSS2 ];
then
echo ""
echo "O % de perda do $ENDER1 de $PCTLOSS1% eh menor que o do $ENDER2 que eh $PCTLOSS2%!"
echo ""
else
echo ""
echo "O % de perda do $ENDER2 de $PCTLOSS2% eh menor que o do $ENDER1 que eh $PCTLOSS1%!"
echo ""
fi
Menu
;;
4) if [ $RTT1 -le $RTT2 ];
then
echo ""
echo "O RTT $RTT1 do $ENDER1 eh menor que o do $ENDER2 que eh $RTT2!"
echo ""
else
echo ""
echo "O RTT $RTT2 do $ENDER2 eh menor que o do $ENDER1 que eh $RTT1!"
echo ""
fi
Menu
;;
5) exit 0
;;
*) echo "Opcao invalida"
Menu
;;
esac
unset $ENDER1 $ENDER2 $QTDEMSG
}
Menu