以下の内容はhttps://hakobe932.hatenablog.com/entry/20080429/1209451898より取得しました。


sshのポートフォワーディングを維持するシェルスクリプト

sshのポートフォワーディングを毎回コマンド打って起動するのが面倒なので,接続を維持するためのシェルスクリプトを書いた.

#! /bin/sh

while true; do
    # ここにフォワーディングのコマンドを書く
    ssh -C -N -L 50143:localhost:143 hostname

    sleep 1
done

といっても,たいしたことなくて,無限ループの中でプロセスを起動してるだけ.プロセスがなんらかの理由で終了したらループが回って起動しなおす.

このままだと,ネットワークがないとsshが失敗しまくって無駄が多いので,一定試行回数を超えたらしばらくおとなしくなるようにする.

#! /bin/sh

TRYCOUNT=0
TRYMAX=5

while true; do
    # ここにフォワーディングのコマンドを書く
    ssh -C -N -L 50143:localhost:143 hostname

    TRYCOUNT=`expr $TRYCOUNT + 1`
    sleep 1

    # TRYMAX回,接続を試みる
    if [ "$TRYCOUNT" -ge "$TRYMAX" ]; then
        TRYCOUNT=0
        sleep 600 # ネットワークが回復まで10分くらい待ってみる
    fi
done

これを,とりあえず,forwarding.shという名前で保存して,

$ forwarding.sh &

とかで動かしてみている.

特定のプログラムを起動しつづけるって,良くある処理だと思うんだけど,もっと良い方法があればぜひ教えて欲しいところです.




以上の内容はhttps://hakobe932.hatenablog.com/entry/20080429/1209451898より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14