我在 ubuntu 上遇到 WIFI 問題,我嘗試更新系統,但情況還是一樣,我突然失去了與路由器的連接,當我按下 WIFI 欄時,系統不會檢測到任何我必須檢測的 AP取消選中“啟用WIFI」選項,然後重新選取它,它就可以工作,它會自動重新連線。
我正在考慮製作一個 bash 腳本來檢測電腦何時因任何原因與路由器斷開連接,並在斷開連接時禁用然後啟用 wifi。我的意思是像自動重置連接一樣可能嗎?
我想我必須用這個
nmcli nm wifi off
nmcli nm wifi on
但我怎麼能讓腳本知道電腦是否與 WIFI 斷開連線?
答案1
它比你想像的更簡單:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
然後您可以使用 cron 作業讓該腳本每分鐘執行一次。
答案2
儘管答案是正確的,但您必須考慮到:
1)無論用戶是否登錄,它都會起作用——這可能是期望的行為,也可能不是,這取決於應用程式;
2)如果重新連線延遲超過1分鐘,你將永遠無法到達那裡...
我編寫了一個簡單的腳本,可以與圖形會話的啟動腳本一起運行,這可能是一個很好的候選人。我將其輸出重定向到一個文件,以便我可以使用我的實用程式 SLogger 追蹤它。
這是劇本——你永遠不知道。
#!/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