DLinkルーターで踊る

Ukrtelecomインターネットのこれらの絶え間ない崖はどれほど厄介です。 回線は正常であり、ルーターは正しく構成されているようですが、インターネットは安定して動作しません。 それが私の直接の仕事に影響を与えなければ、すべてがうまくいくでしょう。 私はフリーランサーです。翻訳では目が覚めます-そしてすでに仕事をしています。 つまり、計画外の障害(私の都市の計画による障害もあります)を軽度に置くと、あまり励みにならず、パフォーマンスに影響します。



まあ、大丈夫、私は泣き言を言うつもりはありません-要点まで。



ルーターの次の攻撃中に、通常はppp接続の接続につながる、再起動のプロセスを自動化することにしました。 DLinkに接続してログインし、rebootinfo.cgiファイルを要求するbashスクリプトを作成しました。 プロセス全体が「インターネットができるまで」サイクルに成功し、それに応じて-私はお茶を飲むためにキッチンに移動します。 すべてがシンプルです。 手にVim-そして行った:



 #!/ bin / bash
 host = $ {host:= "4.2.2.2"}
 router_ip = "192.168.1.1"
 router_reboot_path = "/ rebootinfo.cgi"
 router_user = "admin"
 router_pw = "pw_here"
 num_packets = 4
受信中= ""
再起動= 1
 connect_wait = 60
 while ["$ received" == ""]
する
         echo -ne `date +%T`" \ t "
         echo "$ num_packetsパケットで$ hostをping"
        受信= `ping $ host -c $ num_packets |  grep "$ num_packets received" `
         if ["$ receive"!= ""]
        それから
                 echo -ne `date +%T`" \ t "
                 echo "$ホストは生きています"
        他に
                 echo -ne `date +%T`" \ t "
                 echo "$ホストが応答していません"
                 echo -ne `date +%T`" \ t "
                 echo -n "ルーターを再起動-$再起動を試行"
                 「reboots + = 1」とします
                 `curl -s -u $ router_user:$ router_pw" http:// $ router_ip $ router_reboot_path "> / dev / null`
                寝る10
                 routerAlive = ""
                 while ["$ routerAlive" == ""]
                する
                         routerAlive = `ping $ router_ip -c $ num_packets |  grep "$ num_packets received" `
                         if ["$ routerAlive"!= ""]
                        それから
                                エコー「完了」。
                                 echo -ne `date +%T`" \ t "
                                 echo -n「可能な接続のために$ connect_wait秒待機」
                                秒= 0
                                 while ["$ sec"!= $ connect_wait]
                                する
                                         「sec + = 1」とします
                                         if ["$ sec" == $ connect_wait]
                                        それから
                                                エコー "。"
                                        他に
                                                 echo -n "。"
                                         fi
                                        寝る1
                                やった
                        他に
                                 echo -n "。"
                         fi
                やった
         fi
やった


おおよその出力:



 $ ./routerReboot
 23:25:48 4つのパケットを使用した4.2.2.2のping
 23:26:01 4.2.2.2応答なし
 23:26:01ルーターを再起動します-1を試行します.....完了しました。 
 23:27:10可能な接続を60秒待機します....................................... .....................
 23:28:11 4パケットでの4.2.2.2のping
 23:28:14 4.2.2.2は生きています


確かに、Googleなしでbashを理解しなければなりませんでした-私自身はそれに強くないので、/ usr / libでスクリプトを探しました。たとえば、マニュアルを読みました。 最終的に、スクリプトは機能しました(ただし、インターネットはより高速に見えました:)。 しばらくして、それは本当に役に立ちました。



はい、4.2.2.2-常にpingを実行するため、ya.ruの代わりに使用できます。 さらに、それを使用してDNSを確認できます。



幸せな金曜日



All Articles