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

関連情報