Aqui está um resultado real do meu ping 192.168.1.1
comando:
64 bytes from 192.168.1.1: icmp_seq=964 ttl=64 time=1018 ms
64 bytes from 192.168.1.1: icmp_seq=965 ttl=64 time=921 ms
64 bytes from 192.168.1.1: icmp_seq=966 ttl=64 time=847 ms
64 bytes from 192.168.1.1: icmp_seq=967 ttl=64 time=866 ms
64 bytes from 192.168.1.1: icmp_seq=968 ttl=64 time=895 ms
64 bytes from 192.168.1.1: icmp_seq=969 ttl=64 time=858 ms
64 bytes from 192.168.1.1: icmp_seq=970 ttl=64 time=886 ms
64 bytes from 192.168.1.1: icmp_seq=971 ttl=64 time=890 ms
64 bytes from 192.168.1.1: icmp_seq=972 ttl=64 time=888 ms
64 bytes from 192.168.1.1: icmp_seq=973 ttl=64 time=910 ms
64 bytes from 192.168.1.1: icmp_seq=974 ttl=64 time=915 ms
64 bytes from 192.168.1.1: icmp_seq=975 ttl=64 time=937 ms
64 bytes from 192.168.1.1: icmp_seq=976 ttl=64 time=933 ms
64 bytes from 192.168.1.1: icmp_seq=977 ttl=64 time=947 ms
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
64 bytes from 192.168.1.1: icmp_seq=985 ttl=64 time=1.09 ms
64 bytes from 192.168.1.1: icmp_seq=986 ttl=64 time=2.02 ms
64 bytes from 192.168.1.1: icmp_seq=987 ttl=64 time=3.37 ms
64 bytes from 192.168.1.1: icmp_seq=988 ttl=64 time=1.08 ms
64 bytes from 192.168.1.1: icmp_seq=989 ttl=64 time=2.87 ms
64 bytes from 192.168.1.1: icmp_seq=990 ttl=64 time=1.11 ms
64 bytes from 192.168.1.1: icmp_seq=991 ttl=64 time=1.39 ms
64 bytes from 192.168.1.1: icmp_seq=992 ttl=64 time=1.11 ms
64 bytes from 192.168.1.1: icmp_seq=993 ttl=64 time=1.10 ms
Por alguns motivos desconhecidos, às vezes minha conexão WiFi fica muito lenta e a principal causa é o tempo de ping.
Devo desconectar manualmente meu WiFi e reconectá-lo.
Estou no Ubuntu 20.04 LTS.
Eu quero que seja automático. Aqui estão os trechos de script que eu criei. Mas não consigo juntá-los:
# Read time using awk
ping 192.168.1.1 | awk '{gsub("time=", ""); print $7}'
# Disconnecting from WiFi
nmcli con down WiFiName
# Reconnecting to WiFi
nmcli device wifi connect
Eu tentei isso, mas não funciona:
while read Line; do
echo "read line"
echo $Line
done <<< $(ping 192.168.1.1)
Basicamente, estou preso em redirecionar ping
a saída padrão para um loop while e estou preso em agregar o tempo médio usando o awk
comando.
Como posso combiná-los?
Atualizar
Para quem estiver interessado no script final, veja minha resposta abaixo.
O pipe ou
while
-loop está aguardando entrada, mas seuping
comando nunca termina.Você pode usar
-c
ou-w
sinalizar:por exemplo
Mas para obter o tempo médio, você pode analisar mais facilmente o resumo:
Aqui está o script final que eu criei: