일반적으로 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