サーバーとの接続を切断した後のスクリプト呼び出し

サーバーとの接続を切断した後のスクリプト呼び出し

パラメーター付き関数を呼び出す操作用に作成したスクリプトがあります。パラメーターを使用してsshサーバーに入ります。私の質問は:サーバーとの接続が失われたときに自動的にスクリプトを呼び出すようにこのメソッドを呼び出す方法はありますか?たとえば、ssh私たちのサーバーの1つに入ることができます。reverse-ssh1時間後に接続が閉じるようにトンネルを設定しました。接続を切断した後、ホスト名を求めるスクリプトが再度呼び出されることを願っています。

#!/bin/bash
echo "Provide hostname: "
read host

createSSHFunction()
{
    arg1=$1
    ssh $host
}
createSSHFunction $host

答え1

再帰はほとんど問題を解決しません:-)

簡単なループで目的の操作を実行できます。

while :; do
  ssh $host
done

終了するたびに、sshスクリプトはループの次の反復に移動して再実行されます。

in はwhile :常に:真の値を返すので、while決して終了しない noop コマンドです。ループを終了する方法が必要な場合は、その基準が何であるかを特定してテストする必要があります。

答え2

無限に繰り返す必要がありますが、完了したらスクリプトが再実行されないようにする必要があります。

while ((1)); do script.sh; sleep 3; done

3秒で眠ると、この悪循環を壊す機会が与えられます。 SSHが完了したら終了します。 3秒後にスクリプトが再起動されます。これが発生しないようにするには、Ctrl-Cループを停止してください。

関連情報