バックグラウンドでインターネット接続を継続的に確認するための最良の方法は何ですか?

バックグラウンドでインターネット接続を継続的に確認するための最良の方法は何ですか?

ネットワークカードにパフォーマンスの問題があります。しばらくするとインターネットが切断されますが、Wi-Fi接続レベルは変わりません。同じWi-Fiホットスポットに再接続すると、この問題を解決できます。

インターネット接続を継続的に(たとえば10秒ごとに)確認し、接続が失われた場合は、スクリプトがWi-Fiに再接続する解決スクリプトを作成したいと思います。使用したいのですが、ドキュメントにはpingオートメーションスクリプトで使用するのが賢明ではありません。ping

$ uname -a
Linux NS-COMP 4.11.0-13-generic #19~16.04.1-Ubuntu SMP Wed Aug 2 20:06:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ lspci -knn | grep Net -A2
03:00.0 Network controller [0280]: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe [1814:3290]
    Subsystem: Foxconn International, Inc. RT3290 Wireless 802.11n 1T/1R PCIe [105b:e055]
    Kernel driver in use: rt2860

ベストアンサー1

Wi-Fi接続が切断され続ける理由:

~によるとDebian ドキュメント現在ロードされているもののrt2800pci代わりに使用する必要があります。rt2860問題を解決するために再接続スクリプトを実行する必要はありません。

Bashスクリプトの例

Wi-Fi接続が失われたとき(カーネルモジュールの再ロード+再接続)に接続するためにbashスクリプトを実行する必要がある場合、サンプルbashスクリプトは次のようになりますreconnect

#!/bash/bash
if ! [ "$(ping -c1 8.8.8.8)" ]
then
    modprobe -r rt2860
    modprobe rt2800pci
    ip link set wlan0 down
    ip link set wlan0 up
fi

reconnect10秒ごとにスクリプトを実行します。

while true ; do ./reconnect & sleep 10 ; done &

数時間後にWi-Fiがオフラインになったら、1時間ごとにスクリプトを実行するクローンジョブを作成することをお勧めします。ここにいくつかの例があります。

おすすめ記事