ssh + tar 加速远程拷贝

        在远程拷贝目录(尤其是包含很多小文件的目录)的时候,使用 scp 命令显得十分无力。对于这种情况,通常我们会先用 tar 命令进行打包,然后使用 scp 命令进行拷贝,这样固然可以大幅度提高速度,不过这将经历以下步骤(这将带来很大的额外开销:红色标记的步骤):

    1. 在源机器上打包
    2. 使用 scp 进行远程拷贝
    3. 在目标机器上解包
    4. 删除两台机器上的包
        我们可以使用 ssh 和 tar 命令的组合来完成这一操作,同时最大程度上减小额外开销,提高拷贝效率。
        比如,我们需要从 10.10.0.1 拷贝目录 /home/anke/test 到当前机器的 /tmp 目录,可以使用以下命令:
ssh anke@10.10.0.1 "cd /home/anke; tar zcf - test" | tar zxf - -C /tmp
        同样,如果我们想把 /tmp/test 目录拷贝回去,可以使用以下命令:
cd /tmp
tar zcf - test | ssh anke@10.10.0.1 tar zxf - -C /home/anke
        我把几种不同的远程拷贝策略进行了一个 对比(测试的目录大小为 607M ,共有 7394 个小文件组成),测试结果如下:

使用方案耗时
直接scp8m27s
tar打包 + scp拷贝打包:0m17s  拷贝:0m15s
ssh + tar0m19s

        由上表可见,ssh + tar 拷贝在速度的提升上效果是很明显的,“直接 scp” 就不说了,“tar打包 + scp拷贝”方案即使没有考虑解包和删包也是要比 ”ssh + tar“方案慢的。
        另外,对于大文件来说,尤其是压缩比较高的大文件,也可以使用这种方法来实现加速拷贝。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值