我是一個初學者的Linux用戶,也很新手在SSH和隧道。如何設置一個自動(重新)開始的背景SSH隧道
無論如何,我的目標是維護一個在後臺打開的ssh隧道。
爲了做到這一點,我編寫了以下批處理,然後將其添加到crontab中(批處理在工作日期間每隔5分鐘自上午8點至晚上9點自動處理)。 我在一些其他線程在stackoverflow閱讀,應該使用autossh,這將確保ssh將永遠通過經常性檢查確定。所以做我....
#!/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
我的問題是,有時隧道停止工作,但是每一件事情看起來不錯(ps的斧頭| grep的SSH>,結果表明這兩個預期任務:autossh主要任務和SSH隧道本身)。實際上我知道這個問題導致隧道被第三方軟件使用,只要隧道沒有響應就會觸發錯誤。
因此,我想知道如何改進我的批次,以便它能夠檢查隧道,並重新啓動它,如果它發生死亡。我在there中看到了一些想法,但它是由我已經使用的「autossh」提示得出的。因此,我沒有想法......如果你們有任何人,我很樂意看看他們!
感謝您對我的問題感興趣,併爲您的(也許)建議!
我想你應該看看serverfault.com。搜索'ssh'或'autossh'例如:http://serverfault.com/questions/159766/bash-script-with-permanent-ssh-connection – powerMicha