Acho que você pode estar procurando apenas
ping -c1 -W1 google.com >/dev/null && command
Isso executará command
apenas se o ping tiver êxito.
Eu só preciso executar um script de shell quando uma conexão com a Internet está disponível. É possível assistir a disponibilidade de conexão de internet através de scripts de shell?
ping google.com
é o comando fácil para fazê-lo funcionar. Mas como posso assistir?
Acho que você pode estar procurando apenas
ping -c1 -W1 google.com >/dev/null && command
Isso executará command
apenas se o ping tiver êxito.
Se assistir significa observar a velocidade de transferência, tenho duas soluções.
ifstat -S
sudo iftop
Você poderia fazer algo assim
#!/bin/bash
while [ 1 ]; do
TEST=$(nmcli -f STATE dev status | awk '/connected/ {print 1}')
if [ $TEST ]; then
# place whatever you wanna do here if connection is available
fi
sleep 0.25
done
nmcli
tem o comando dev status
que mostra o status das interfaces de rede. Portanto, verificamos apenas a coluna de status da saída com o sinalizador -f STATUS
format. Se tivermos conexão, independentemente de ser ethernet ou wifi, definimos a variável TEST como 1, ou seja, true. Em seguida está a declaração if . . then . . .fi
, que realmente faz o trabalho.