【发布时间】:2018-10-06 10:49:37
【问题描述】:
我必须从本地机器上的远程服务器复制大量文件(大约 2000 个文件,每个文件大小大约 5MB),所以我通常在本地机器终端上运行以下命令来复制文件:
scp goldy@machineA:/process/snap/20180418/* /data/files/
有没有办法使用 gnu-parallel 或其他任何方法从远程服务器并行复制这些文件?我的意思是并行复制 5 个文件,而不是一个一个地做所有事情。
注意:以下是我在远程服务器上的文件名。
abc_proc_1_log.data
abc_proc_2_log.data
abc_proc_3_log.data
abc_proc_4_log.data
...
abc_proc_2000_log.data
【问题讨论】:
-
拆分文件列表,并为每个集合发出单独的
scp命令。 -
您仍将使用相同的网络通道来传输文件。并行本地进程不会使其更快。除非是加密/解密是瓶颈。
-
试一试没有坏处,我有 10GB 的网络管道,所以想看看这是否有什么不同。
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
-
scp具有非常高的每个文件开销。将其与更小的文件(如单个 tar 流)进行比较:ssh goldy@machineA "tar c /process/snap/20180418/*" | tar x -C /data/files
标签: linux bash shell scp gnu-parallel