Ubuntu の WIFI に問題があります。システムを更新しようとしましたが、それでも同じことが起こります。突然ルーターとの接続が失われ、WIFI バーを押してもシステムが AP を検出しません。[WIFI を有効にする] オプションのチェックを外して再度チェックすると、自動的に再接続されます。
何らかの理由で PC がルーターから切断されたことを検出し、切断されたら Wi-Fi を無効にしてから有効にする bash スクリプトを作成したいと考えています。つまり、接続のリセットを自動化することは可能ですか?
これを使わなければならないと思う
nmcli nm wifi off
nmcli nm wifi on
しかし、PC が Wi-Fi から切断されているかどうかをスクリプトに知らせるにはどうすればよいでしょうか?
答え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