首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同时运行多个scp线程

同时运行多个scp线程
EN

Server Fault用户
提问于 2011-10-31 21:59:52
回答 5查看 34.5K关注 0票数 14

同时运行多个scp线程:

背景:

我经常发现自己经常镜像一组服务器文件,其中包含了数千个1kb-3kb的小文件。所有服务器都连接到1 1Gbps端口,通常分布在各种数据中心。

问题:

SCP一个接一个地传输这些小文件,需要很长时间,我觉得我在浪费我拥有的漂亮的网络资源。

解决方案?:

我有一个想法:创建一个脚本,它将文件分成等量,然后启动5-6个scp线程,理论上这些线程的完成速度会快5-6倍,不是吗?但是我没有任何linux脚本的经验!

问题(S):

  • 对上述问题是否有更好的解决办法?
  • 像这样的东西已经存在了吗?
  • 如果没有,有没有人会给我一个开始,或者帮助我?
  • 如果不是2或3,哪里是开始学习linux脚本的好地方?比如巴什或者其他。
EN

回答 5

Server Fault用户

回答已采纳

发布于 2011-10-31 22:56:58

我会这样做:

tar -cf - /manyfiles | ssh dest.server 'tar -xf - -C /manyfiles'

根据您要传输的文件,在tar命令中启用压缩是有意义的:

tar -czf - /manyfiles | ssh dest.server 'tar -xzf - -C /manyfiles'

您也可以为ssh命令选择一个对CPU更友好的密码(比如arcfour):tar -cf - /manyfiles | ssh -c arcfour dest.server 'tar -xf - -C /manyfiles'

或者将两者结合起来,但这确实取决于瓶颈是什么。

显然,如果您执行增量同步,rsync会快得多。

票数 14
EN

Server Fault用户

发布于 2011-10-31 22:04:54

使用rsync而不是scp。您可以像使用rsync一样轻松地在ssh上使用scp,并且它支持“文件传输的流水线化,以减少延迟成本”。

提示:如果数据是可压缩的,则启用压缩。如果不是,就禁用它。

票数 11
EN

Server Fault用户

发布于 2011-10-31 23:32:44

我正要建议GNO 并行 (这还需要您做一些脚本工作),但后来我找到了pscp (它是pssh的一部分)。也许能满足你的需要。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/326490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档