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を確認できます。
幸せな金曜日