pipe道多个文件,单个ssh连接,远程命令

我想通过ssh传输几个文件到远程服务器,作为input到远程服务器上运行的命令的input,但只有一个ssh连接/命令是允许的。 (在远程的authorized_keys文件中,指定了“command = …”,所以只能使用该密钥在远程端运行一个命令/脚本)。

是否有可能有一个设置多个文件在同一个pipe道 – 我一直在考虑tar'ing他们和在远程脚本中的一些逻辑/ untar分开的文件单独的命令

最初的设置是类似的

 cat file1 |  ssh -i identity remote.host'remote command1 <'
猫file2 |  ssh -i identity remote.host'remote command2 <'
 ...等等

使用焦油,它可能是类似的

 tar cf  -  file1 file2 file3 |  ssh -i identity remote.host'remote command.sh <'

远程脚本将需要能够逐个提取文件,并将数据传输到单独的命令,但我不知道如何实现这一点

如果文件之间的界限不重要,只需要cat file1 file2 | ssh … cat file1 file2 | ssh … 如果他们这样做,使用焦油。 这实际上是非常接近它发明的,正是它所做的。

另一个选项是设置一个命名pipe道,保持ssh连接打开一个文件节点的input。 你可以随意倾倒东西。

编辑 :焦油的例子用法:

在远程命令运行的脚本内部的接收器端,移动到要提取文件的位置,然后读取“em:

 #!/bin/bash cd /path/to/extract/destination cat - | tar x 

而在发送方面:

 tar c file1 file1 | ssh […]