Execute nmcli con list
para descobrir o UUID da sua conexão 3G e, em seguida, execute sudoedit /usr/local/bin/inettest
e copie o seguinte:
#!/bin/bash
ping -I eth0 -q -c 2 8.8.4.4 > /dev/null 2>&1
if [ $? -ne 0 ]; then
nmcli con down uuid 03e5a69a-2682-47df-a443-59cec06802aa
else
nmcli con up uuid 03e5a69a-2682-47df-a443-59cec06802aa
fi
Substitua o UUID acima pelo seu (obviamente) e salve-o. Execute chmod +x /usr/local/bin/inettest
para torná-lo executável.
Teste isso agora.
- Executar
inettest
com uma conexãoeth0
em funcionamento. - Em seguida, quebre o
eth0
e execute-o novamente. - E corrija e execute novamente.
A conexão 3G deve aparecer e voltar para baixo. Se isso não acontecer, há algo simples com o roteiro. Mas, supondo que tudo corra bem, podemos programá-lo para ser executado a cada 5 minutos executando crontab -e
e adicionando o seguinte em uma nova linha:
*/5 * * * * /usr/local/bin/inettest
Você pode querer uma resolução mais rigorosa. Cron só pode agendar para baixo para o minuto, mas você pode empilhar várias chamadas com o sono. Este exemplo será executado duas vezes por minuto:
* * * * * /usr/local/bin/inettest & sleep 30; /usr/local/bin/inettest
Eu não acho que você gostaria de ir muito mais apertado do que isso.