私はLinuxの初心者ですが、sshとトンネルではかなり初心者です。バックグラウンドsshトンネルの自動(再)スタートを設定するには
とにかく、私の目標は、バックグラウンドで開いているsshトンネルを維持することです。
はそのために、私はその後、(バッチが自動的に平日の間、5分ごとに処理され、午前8時から午後9時までされた)のcrontabに追加次のバッチを書きました。 stackoverflowの他のスレッドで、autosshを使用して、sshが再帰チェックで常にokになるようにしてください。だから私は....
#!/bin/bash
LOGFILE="/root/Tunnel/logBatchRestart.log"
NOW="$(date +%d/%m/%Y' - '%H:%M)" # date & time of log
if ! ps ax | grep ssh | grep tunnelToto &> /dev/null
then
echo "[$NOW] ssh tunnel not running : restarting it" >> $LOGFILE
autossh -f -N -L pppp:tunnelToto:nnnnn [email protected] -p qqqq
if ! ps ax | grep ssh | grep toto &> /dev/null
then
echo "[$NOW] failed starting tunnel" >> $LOGFILE
else
echo "[$NOW] restart successfull" >> $LOGFILE
fi
fi
私の問題は、すべてのものはOKに見えますが、時々トンネルは、作業を停止することですやった(psの斧は|はgrepのsshは>結果は、2つの期待されるタスクを示していますautossh主なタスクとsshトンネル自体)。私は実際に、トンネルがもう応答しなくなるとすぐにエラーを引き起こす第三者のソフトウェアによってトンネルが使用されるという問題について知っています。
ので、私はトンネルをチェックし、死んだことを起こる場合は、それを再起動することができますために、私のバッチを改善する方法を疑問に思って。私はthereでいくつかのアイデアを見ましたが、私がすでに使っている "autossh"ヒントによって結論付けられました。したがって、私はアイデアがありません...あなたのいずれかがいる場合は、私は喜んでそれらを見ているだろう!
ご質問ありがとうございました。ありがとうございました。
私はあなたがserverfault.comを見ているべきだと思います。 'ssh'または' autossh'を検索してください。例:http://serverfault.com/questions/159766/bash-script-with-permanent-ssh-connection – powerMicha