É mais simples do que você pensa:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Em seguida, você pode usar um cron job para esse script ser executado a cada minuto.
Estou enfrentando problemas com o WIFI no Ubuntu Eu tentei atualizar o sistema, mas ainda o mesmo o que acontece é que de repente eu perco a conexão com o meu roteador e quando eu pressiono na barra WIFI o sistema não detecta nenhum AP Eu tenho que desmarcar a opção "enable WIFI", em seguida, re verificar isso funciona, ele reconectar automaticamente.
Estou pensando em fazer um script bash que detecta quando o PC é desconectado do roteador por qualquer motivo e, quando desconectado, desabilita e habilita o wifi. Quero dizer, como automatizar a redefinir a conexão que é possível?
eu acho que devo usar isso
nmcli nm wifi off
nmcli nm wifi on
mas como posso fazer o script saber se o PC está desconectado do WIFI?
É mais simples do que você pensa:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Em seguida, você pode usar um cron job para esse script ser executado a cada minuto.
Embora a resposta esteja correta, você deve levar em conta que:
1) funcionará se o usuário estiver logado ou não --- isso pode ser um comportamento desejado ou não, dependendo da aplicação;
2) se a reconexão atrasar mais de 1 minuto, você nunca chegará lá ...
Eu escrevi um script simples que posso executar com os scripts iniciais da minha sessão gráfica e que pode ser um bom candidato. Eu redireciono sua saída para um arquivo para que eu possa seguir meu utilitário SLogger.
Aqui está o script --- você nunca sabe.
#!/bin/bash
while /bin/true; do
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Warning: connection lost at $(date) -- restart"
nmcli nm wifi off
sleep 5
nmcli nm wifi on
sleep 60
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Waiting for connection going up at $(date)"
sleep 60
else
echo "Connection on at $(date)"
fi
# else
# echo "Connection OK on $(date)"
fi
sleep 60
done
Tags networking bash wireless