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
。