ネット接続失敗時の自動リトライその2
昨日のrubyのソースで使用した、ネット接続中を確認するonline?メソッドの機能が気に入ったので同様のことを行うシェルスクリプトを書いてみました。
5月9日の日記で書いたスクリプトと置き換えて使用するつもり。変数$ipにゲートウェイのIPが入るのですが、もっと簡単にIPを抜き出す方法ってあるんですかね。
しかし、このスクリプトだと接続失敗の確率が減るのは何故だろう?
……と思ったら、やぱり変わらないっす(^^;
#!/bin/sh net_online(){ i=`/sbin/route -n | /bin/grep -e "^0\.0\.0\.0"` if [ "$i" ]; then ip=`/bin/echo $i | /bin/sed -e "s/\s+/ /g" | cut -d" " -f 2` # echo "ip=$ip" k=`/bin/ping -c 1 "$ip" | /bin/grep -e "time"` if [ "$k" ]; then return 0 fi return 1 else return 1 fi } ##### while !(net_online) do echo QPE/Network 'connectRequest()' > /var/spool/inputhelper/qcop sleep 1 /home/QtPalmtop/bin/qcop QPE/InputHelper 'key(QString)' "click Escape" sleep 25 done