一次性将多个文件 scp 到一台目标服务器上的多个目的地?

一次性将多个文件 scp 到一台目标服务器上的多个目的地?

我想要将几个目录中的大约六个文件 scp 到目标机器上的相同目录中。

如果不使用 ssh 密钥,一次调用就能实现吗?

例如:

scp /path/to/fileA,/anoth/erpath/to/fileB,/yet/more/files/*    #continue next line
    destination:/path/to,/anoth/erpath/to,/yet/more/files

答案1

在发送端将文件压缩,在接收端将其解压缩。

tar -cf - /path/to/fileA /anoth/erpath/to/fileB /yet/more/files/* |
ssh -C destination 'cd / && tar -xf -'

您还可以编写 sftp 会话脚本,或者使用带有正确过滤器的 rsync。

答案2

您可以从多个源复制到一个目标。scp -r src1 src2 ... dst 但不能复制到多种的目的地。

一个选项是将所有目录复制到临时目标目录。然后将它们移回。

答案3

查看pssh包。它有parallel-scp命令。-h选项允许您提供具有多个主机作为目标的文本文件(每行一个)。

答案4

我使用以下命令将多个文件复制到多个目的地。

scp -r 源{1,2,3} 目标{1,2,3}

该命令的作用类似于以下命令集

scp -r 源1 目标1

scp -r 源1 目标2

scp -r 源3 目标2

scp -r 源文件3 目标文件3

相关内容