SSH経由でファイルをアップロードし、リモートマシンでコマンドを実行する

SSH経由でファイルをアップロードし、リモートマシンでコマンドを実行する

私は、ssh を使用してファイルをアップロードし、その後、再度ログインする必要がないように、同じ ssh セッション内でリモート マシン上でコマンドを実行して後処理を行う最も簡単な方法を探しています。可能であれば、アップロード時に進行状況インジケーターが表示される必要があります。

これまでscpとrsyncを調べましたが、どちらもフックを実行することはできませんでした。(--rsync-pathパラメータを使用してスクリプトを実行することはできます前にrsync を使用していますが、後処理を行いたいです。ssh セッションを開いてアップロードし、コマンドを実行して再度閉じる方法はありますか?

答え1

そうですね、もう一方の端に を付けて、全体を 1 つのsshコマンドにパイプすることもできますcat。ここでは、シェル スクリプトをアップロードし、実行可能にして実行します。

$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!

答え2

ControlMasterのメカニズムが必要な場合がありますssh

関連情報