linux – 同时运行多个scp线程

同时运行多个scp线程:

背景:

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

问题:

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

解?:

我有个主意;创建一个脚本,将文件分成相等的数量,然后启动5-6个scp线程,从理论上讲,这样可以快5-6倍,不是吗?但我没有任何linux脚本编写经验!

问题(S):

>对于上述问题,是否有更好的解决方案?
>这样的东西已经存在吗?
>如果没有,是否有人会给我一个开始,或帮助我?
>如果不是2或3,哪里是开始学习linux脚本的好地方?像bash或其他.

解决方法

我会这样做:
tar -cf – / manyfiles | ssh dest.server’tar -xf – -C / manyfiles’

根据您传输的文件,在tar命令中启用压缩是有意义的:
tar -czf – / manyfiles | ssh dest.server’tar -xzf – -C / manyfiles’

为ssh命令(如arcfour)选择cpu友好密码也可能有意义:
tar -cf – / manyfiles | ssh -c arcfour dest.server’tar -xf – -C / manyfiles’

或者将它们结合起来,但这实际上取决于你的瓶颈是什么.显然,如果您正在进行增量同步,rsync将会快得多.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...