【问题标题】:copy small files in parallel from remote servers从远程服务器并行复制小文件
【发布时间】: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 UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • scp 具有非常高的每个文件开销。将其与更小的文件(如单个 tar 流)进行比较:ssh goldy@machineA "tar c /process/snap/20180418/*" | tar x -C /data/files

标签: linux bash shell scp gnu-parallel


【解决方案1】:
ssh goldy@machineA 'ls -1 /process/snap/20180418/*' \
| parallel -j5 'scp goldy@machineA:{} /data/files/{}'

  • ssh goldy@machineA 'ls -1 /process/snap/20180418/*' - 预先从远程机器获取文件名列表
  • parallel -j5 ... - 在 parralel 中最多运行 5 个作业

【讨论】:

  • 鉴于文件为 5 MB 并且并行运行 5 可能太少:大量时间将花费在简单的登录上,因此增加 5 可能是个好主意。
  • 我尝试了您的上述建议,但看起来您在并行内部的 scp 命令有些问题。它正在尝试以scp: /process/snap/20180418//process/snap/20180418/abc_monthly_1000_log.data: No such file or directory 的格式查找文件,但通常应该是/process/snap/20180418/abc_monthly_1000_log.data。知道有什么问题吗?
  • @user1950349,没错,就是路径问题。查看我的更新
  • 这是我尝试的第一件事,但它再次失败并出现此错误消息/data/files//process/snap/20180418/abc_monthly_1000_log.data: No such file or directory。现在它以某种方式与目标目录路径混合在一起
  • 我认为应该是/data/files/ 而不是这个/data/files/{}。你怎么看?
【解决方案2】:

GNU Parallel (man parallel) 的手册页中描述了您的问题: https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Parallelizing-rsync

seq -w 0 99 | parallel rsync -Havessh fooserver:src/*{}.png destdir/

但是对于那些小文件,您可能想要添加-j100 --delay 0.01。延迟应该确保 sshd 不会被淹没。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 2012-04-08
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多