reconexão automática wifi

1

geralmente reconecta o Wi-Fi após a queda, mas às vezes ele mostrará a tela de login do Wi-Fi já preenchida, esperando para pressionar a conexão depois que uma nova conexão será formada com # 2 após o ssid duplicado.

às vezes, apenas desmarque / marque a opção 'habilitar a rede'. outras vezes, ela não será reconectada.

Eu tentei criar um script, mas ele continua a acumular & contar mesmo quando não houver badpings antes de atingir o limite máximo de 30 contagens.

while true; 
do
    if ! [ "$(ping -c 1 google.com)" ]; then
        echo "no ping,will reset" 

    #counter of bad pings here
    count=1             
    while [ $count -lt 30 ]
        do
            count='expr $count + 1'
            echo "$count"
            # insert here: retest for good ping
            sleep 1
        done


        nmcli networking off 
        sleep 5 
        nmcli networking on


        #sleep for 15sec wait wifi on ssid search        
        secs=$((1 * 15))
        while [ $secs -gt 0 ]; do
        echo -ne "$secs3[0K\r"wifi reactivate in- 
        sleep 1
         : $((secs--))
        done


        if ! [ "$(ping -c 1 google.com)" ]; then
             echo "still offline for $count x @ $(date)" 

         else 
         count=0
             #echo "reconnected at $(date)" 
         echo "ON"
        fi
        else

        echo "ONLINE"
        sleep 1
    clear
    fi
done
    
por neowiz 18.07.2018 / 20:27

1 resposta

1

Acho que isso está mais próximo do que você quer, mas definitivamente pode ser melhorado ainda mais:

while :; do
    if ! ping -c1 google.com >/dev/null 2>&1; then
        echo "no ping,will reset" 
        #counter of bad pings here
        count=1             
        while [ "$count" -lt 30 ]; do
            echo "$count"
            # insert here: retest for good ping
            nmcli networking off 
            sleep 5 
            nmcli networking on
            if ! ping -c1 google.com >/dev/null 2>&1; then
                echo "still offline for $count x @ $(date)" 
            else 
                #echo "reconnected at $(date)" 
                echo "ON"
                break
            fi
            ((count++))
            sleep 1
        done
    else
        echo "ONLINE"
        sleep 1
        clear
    fi
done
    
por 18.07.2018 / 21:01