SSHPASS が送信されたコマンドの結果を待たずに切断するようにするにはどうすればよいですか?

SSHPASS が送信されたコマンドの結果を待たずに切断するようにするにはどうすればよいですか?

自動化の目的で、SSHPASS を使用して一時 IP 経由で Linux ベースのデバイスを構成しています。

sshpass -p $TARGET_password ssh -o StrictHostKeyChecking=no $TARGET_username@$TARGET_IP 'bash -s' < $configfile

一連のコマンドを含むスクリプトを送信しています。最後のコマンドは永続 IP を構成するものです。

スクリプトが IP を変更するとすぐに、一時 IP とのセッションが失われるため、スクリプトがハングします。

したがって、IP を変更するコマンドを送信し、戻りを待たずにすぐに切断することは可能ですか。

答え1

切断する前にアドレスが変更されます。たとえば、最後のコマンドを&演算子を使用してバックグラウンドで実行します。次のようになります。

( (sleep 1; ip addr change ...) &)

SSHPASS が ACK を受信して​​いないのはコマンドが成功したため (IP が変更されたため) なのか、コマンド パケットがサーバーに到達していないためなのかを判断する良い方法はありません。まったく(ネットワークの問題による) 前者の場合は切断する必要がありますが、後者の場合は未確認のパケットを再送信し続ける必要があります。

関連情報