【发布时间】:2013-03-24 22:19:43
【问题描述】:
我们有一个由多台机器组成的网络,我们希望将一个大目录(大约 10 GB)分配给每个机器。
它位于 nfs-server 上并安装在所有机器上,因此第一种方法是使用普通的cp 将文件从安装的目录复制到本地目录。这很容易,但不幸的是没有进度条,因为它不打算用于网络副本(或者是吗?)。
使用scp 用于跨网络复制,但它可能会加密所有内容,因此速度很慢。
应该更快,如果是,哪个:cp on nfs-mount 或scp?
【问题讨论】:
-
如果您有很多目标机器,也许制作一个压缩存档(例如使用
tar czf)并传输它可能会更快(然后在每台目标机器上取消存档)。 -
另外,如果文件夹包含大量文件,scp 可能会比期望的慢。我建议然后做
tar c /your/folder | ssh user@remoteMachine cd /destination/folder \; tar x。这会将所有文件作为单个 tar 传递而不压缩(您可以根据需要添加它)并在接收点提取它们。但很抱歉,我不知道这是否会比简单的cpover nfs 更快。 -
另外,这可能属于 superuser.SE 或 serverfault.SE 而不是 SO
-
使用 Carlos 方法(NFS 几乎是邪恶的,如果只是因为它破坏了安全性)。您可以添加一个'| pv .....' 在 '|ssh ...' 之前有一个漂亮的进度条。通常我们将其写为:
tar cf - /your/folder | pv | ssh user@remoteMachine "cd /destination/folder ; tar xf -"以清楚地表明它使用标准输出/输入(-) -
我不知道
pv。非常好:D