通过 ssh 上传文件并在远程计算机上执行命令

通过 ssh 上传文件并在远程计算机上执行命令

我试图找到使用 ssh 上传文件的最简单方法,然后在同一 ssh 会话中在远程计算机上运行命令进行一些后处理,这样我就不需要再次登录。如果可能的话,上传应该显示一些进度指示器。

到目前为止,我研究了 scp 和 rsync,两者都无法运行任何钩子。 (我可以使用--rsync-path参数来执行一些脚本rsync)但我想做后处理。有没有办法打开 ssh 会话、上传、执行命令并再次关闭它?

答案1

好吧,您可以通过一个命令将整个过程通过管道传输,另一端则ssh使用 a 。cat这里我上传一个 shell 脚本,使其可执行,然后运行它:

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

答案2

您可能需要ControlMaster中的机制ssh

相关内容