Linux中互传文件:ssh+tar 与Scp 比较

使用ssh+tar 传输文件与scp比较

  • 使用cat 输出文件
tar -zcvf - ./ |ssh [email protected] "cat >/home/posp/xxx.tar.gz
real    1m26.803s
user    1m21.459s
sys 0m5.323s
  • 使用dd生成文件
tar -zcvf - ./ |ssh [email protected] "dd of=/home/posp/xxx.tar.gz 
real    1m27.242s
user    1m21.475s
sys 0m5.840s
  • 直接在传输的时候直接解压
tar -zcvf - ./ |ssh [email protected] "tar -zxvf - -C /home/posp/trans1"
real    1m27.242s
user    1m21.475s
sys 0m5.840s
  • 使用Scp传输文件(没有压缩)
scp -r  ./ [email protected]:/home/posp/chenchen_test/trans1
real    6m54.000s
user    0m41.940s
sys 0m12.742s

ps: 因为空洞文件压缩后会非常小,没有压缩传输的话非常耗费时间

  • 使用Scp命令本身的压缩参数 -C, 压缩后传输
scp -r -C  ./ [email protected]:/home/posp/chenchen_test/trans1
real    2m21.667s
user    1m45.134s
sys 0m11.294s
  • 使用Scp + tar ,tar压缩后传输
tar -zcvf xxx.tar.gz ./
real    1m18.370s
user    1m17.027s
sys 0m4.867s
scp xxx.tar.gz [email protected]:/home/posp/chenchen_test/trans1
real    0m41.054s
user    0m4.094s
sys 0m1.017s
总时间 :
real    1m59.424s
user    1m21.121s
sys 0m5.884s

总结:

  1. ssh + tar 传输文件 速度比scp速度更快
  2. ssh + tar 用dd 和 cat 写入文件的时候,速度并没有很大变化.(可能取决于当时系统的负载情况)
  3. scp 压缩与不压缩速度差别很大
  4. 先使用tar打包压缩文件再传输,比使用scp命令本身压缩后传输快

注:
本文使用测试的传输文件目录大小4.8G 其中有2.5G通过dd 生成的zero文件dd if=/dev/zero of=file count=1 bs=1000000000(压缩与不压缩有很大差别).
如果传输的是大文件,如视频,音频,本身不可压缩很多,压缩与不压缩差距不大.
测试文件数量14140,文件数量多,但是大文件少.

你可能感兴趣的:(Linux中互传文件:ssh+tar 与Scp 比较)