Estou enfrentando problemas com WIFI no Ubuntu tentei atualizar o sistema mas ainda assim o que acontece é que de repente perco a conexão com meu roteador e quando pressiono a barra WIFI o sistema não detecta nenhum AP que preciso desmarque a opção "ativar WIFI" e verifique novamente para que funcione e ele se reconecte automaticamente.
Estou pensando em fazer um script bash que detecte quando o pc está desconectado do roteador por algum motivo, e quando for desconectado ele desabilita e depois habilita o wifi. quero dizer, como automatizar a redefinição da conexão possível?
acho que devo usar isso
nmcli nm wifi off
nmcli nm wifi on
mas como posso fazer com que o script saiba se o PC está desconectado do WIFI?
Responder1
É mais simples do que você pensa:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Então você pode usar um cron job para que este script seja executado a cada minuto.
Responder2
Embora a resposta esteja correta, você deve levar em consideração que:
1) funcionará se o usuário estiver logado ou não --- este 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á...
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 segui-lo com meu utilitário SLogger.
Aqui está o roteiro --- 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