用于将数千个文件 scp 为 tar 的单行 Linux

knu*_*ole 2 scp tar macos

我有一个包含数万个文件的文件夹,我需要将它们 scp 到另一个盒子。由于一次处理一个文件非常耗时,而且我没有硬盘空间来制作所有磁贴的压缩 tar 存档 - 我想做以下操作:

动态压缩整个存档并将其直接通过 scp 传递到另一个盒子并立即在那里解压缩。这样我就可以获得全部带宽(无需启动每个文件),而且我不会因为复制整个档案而耗尽空间。

我的 A 盒是 OSX,B 是 Ubuntu。

有单行的吗?

JvO*_*JvO 5

我建议使用rsync; 如果您的连接中断,rsync 可以从它离开的地方开始(有一点开销)。rsync 可以直接通过 ssh 工作,因此它仍然是安全的。

rsync -av -e ssh /path/to/send rsync://user@ubuntu.box/path/to/receive

  • Rsync 使用数据流,而不是文件。但它只是一个单一的数据流,是的。真正的保护措施是万一您的传输中断或只有几个文件发生了变化,而您仍然希望同步两端:rsync 比较两端的目录和/或文件,并且只发送不同的。上面的 tar/scp 解决方案每次都会传输所有内容。 (2认同)