linux - 用于远程文件夹复制的嵌套 scp

标签 linux bash ssh nested scp

目标:我正在尝试将文件夹及其文件从 HOST_C 复制到 HOST_A。 sshscp 由于 key 的原因只能通过 HOSTB 完成。

基础设施:

HOST_A<-->HOST_B<-->HOST_C

当前程序:

ssh to host_B
scp -r from folder at C to folder on B
exit ssh from B
scp -r from  folder on B to folder on A
ssh to host_B again
rm -r folders created

我已经尝试使用 ProxyCommand 但没有成功。

欢迎提出建议

最佳答案

您可以使用 ssh 从主机 B 连接到主机 C,创建文件夹的 tar 存档以复制并将输出发送到 STDOUT 并将所有这些通过管道传输到连接到主机 A 的第二个 ssh session 并解压缩收到的 tar 存档在标准输入上。

ssh host_C "cd/somewhere; tar czpf - 文件夹"| ssh host_A "cd/somewhere; tar xzpf -"

关于linux - 用于远程文件夹复制的嵌套 scp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43395864/

相关文章:

regex - sed 从字符串中提取版本号(只有版本,没有其他数字)

java - 使用 JSch 和 Java 捕获服务器命令输出

python - pytest 错误(pytest 和 TDD 新手)

c - 确保一个 cpu 在另一个 cpu 读取 "double"之前写入了 "double"?

bash - 如何使用bash更改日志文件中的日期格式,避免while循环

regex - 使用 bash 和正则表达式在一行中查找并终止进程

c# - 使用 SSH.NET SshClient.RunCommand 执行的命令 (.4gl) 失败,返回 "No such file or directory"

java - Jenkins CLI 连接被拒绝

linux - 使用文件内容创建新目录

python - 在挂载 Raspberry Pi 时自动将文件复制到 USB