Wi-Fi가 자동으로 다시 연결됩니다.

Wi-Fi가 자동으로 다시 연결됩니다.

일반적으로 Wi-Fi는 연결이 끊어진 후 다시 연결되지만 때로는 Wi-Fi 로그인 화면이 가득 차서 연결을 기다린 후 중복된 ssid 뒤에 #2를 사용하여 새 연결이 형성되는 경우도 있습니다.

때로는 "네트워킹 활성화"를 선택 취소하거나 선택합니다. 다른 경우에는 다시 연결되지 않습니다.

스크립트를 작성해 보았는데 최대 제한인 30개 카운트에 도달할 때까지 아무런 배핑 없이도 계속 누적되고 카운트됩니다.

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 "$secs\033[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

답변1

나는 이것이 당신이 원하는 것에 더 가깝다고 생각하지만 확실히 더 개선될 수 있습니다.

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

관련 정보