2010-07-22 37 views

回答

0

我认为这会每次创建一个单独的连接。但是,使用-r标志(Net :: SCP使用的)的scp递归复制一个目录中的所有文件并使用单个连接。如果您的文件位于几个目录中,并且您想要复制这些目录中的所有文件,那么这可能就是要走的路。

否则,带有--files-from选项的rsync应该只使用一个连接。 (不要忘记-z压缩,或-a)。

如果您考虑使用perl来执行此操作的唯一原因是您想要单个会话,那么只需使用命令行rsync即可获得此效果(使用--files-from)。如果你想让perl能够生成文件列表 - 来自File :: Rsync的支持。

1

除非您在每个单独的TCP连接上都有带宽限制,否则使用多个SCP连接不会显着减少下载时间。

您可以通过为shell脚本中的每个文件分别放置scp命令并对脚本进行计时来检查是否加快速度。然后在每个scp行末尾重新运行shell脚本&。如果这样可以加快传输速度,并且希望在Perl中完成此操作,请查看forkParallel::ForkManager