我想要将几个目录中的大约六个文件 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