この記事は、以前のホームルーター/ファイルサーバーのセットアップに関する
出版物を補完するものです。 ここでは、4Gモデムがハングしたときにインターネットに自動的に再接続する問題について説明します。 私は独創的なアイデアのふりをするのではなく、読者に決定を伝えたいだけです。

月に1回程度の絶え間ない作業の過程で、USBモデムがハングすることが起こりました。 これにより、不便な点がありました。自宅のコンピューターにリモートでアクセスできず、映画を事前にアップロードできないことです。 リモートでは、この問題は修正できず、モデムの電源リセットのみが役立ちました。 唯一の方法は、特定の時間にインターネット上のサイトの可用性をチェックし、必要に応じてモデムを再起動するスクリプトを書くことでした。
私はインターネット上でいくつかの実装を見つけましたが、それらのどれも通常私のために機能しませんでした。 それで、私は
好みと若い女性で私の番犬を書くことに決めました。
このトピックのスクリプトが基礎として採用されました。 資格が許す限り書き直され、外部オプションなどの新機能が追加されました。
CentOS 7にUSB 4Gモデムをインストールして構成します。まず、不足しているパッケージをダウンロードする必要があります。
yum install usb_modeswitch usb_modeswitch-data
モデムを接続し、システムでどのように検出されるかを確認します。
dmesg ip a
次に、4Gモデムインターフェイスを設定する必要があります。
vim /etc/sysconfig/network-scripts/ifcfg-wwp6s0u1i1
DEVICE="wwp6s0u1i1" NAME="wwp6s0u1i1" TYPE="Ethernet" ONBOOT="yes" BOOTPROTO="dhcp" HWADDR="XX:XX:XX:XX:XX:XX" NM_CONTROLLED="no" DNS1=127.0.0.1 DNS2=127.0.0.1 DNS3=127.0.0.1 NOZEROCONF="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="no" ZONE="external"
インターフェイスをオンまたはオフにしたときにインターネットを有効または無効にするスクリプトを作成します。
vim /sbin/ifup-pre-local
vim /sbin/ifdown-pre-local
vim /etc/sysconfig/network-scripts/pre-up-wwp6s0u1i1
vim /etc/sysconfig/network-scripts/pre-down-wwp6s0u1i1
ここで、ttyUSB0はモデムポートです。
インターフェイスを上げて、接続を確認します。
ifup wwp6s0u1i1 ip a
スクリプトは、/ usr / local / bin /にあります。
スクリプトを5分ごとに自動的に実行するには、タスクをcronに追加します。
crontab -e
*/5 * * * * /usr/local/bin/watchdog -m Huawei -s ya.ru -i wwp6s0u2i1 -n 3 -d 1-1 > /dev/null 2>&1
これはdmesgの出力であり、スクリプトの実行時にモデムがリセットされたことを示しています。
[181709.595498] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0 [181709.595568] option 1-1:1.0: device disconnected [181709.595798] huawei_cdc_ncm 1-1:1.1 wwp6s0u2i1: unregister 'huawei_cdc_ncm' usb-0000:06:00.0-1, Huawei CDC NCM device [181709.615005] option 1-1:1.0: GSM modem (1-port) converter detected [181709.616597] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0 [181709.623449] usb 1-1: MAC-Address: 0c:5b:8f:27:9a:64 [181709.623958] huawei_cdc_ncm 1-1:1.1: cdc-wdm0: USB WDM device [181709.624341] huawei_cdc_ncm 1-1:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:06:00.0-1, Huawei CDC NCM device, XX:XX:XX:XX:XX:XX
スクリプトは理想からはほど遠いことをすぐに言わなければならないので、私は喜んでアドバイスと健全な批判を受け入れます。
また、
@ AlekseyNemiroというニックネームで
Toster.ruを使用しているユーザーに、スクリプトの最適化の支援に感謝したいと
思います。
UPD 01/22/16 PATH変数にパスを追加するコマンドでスクリプトを補足しました。