方式一:scp
什么是scp: scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证。 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码或口令。
速度:刚开始的时候33M/s 持续3分钟左右就跌落到3M左右的传输速度
方式二:rsync
什么是rsync: rsync是rcp的替代品之一,rsync 是一款高效的远程数据备份和镜象工具,
速度:无响应
方式三:wget
什么是wget: wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,即可跟踪 HTML 页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级链接转换成指向本地文件,方便离线浏览。由于非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。
速度:刚开始的时候50M/s 持续3分钟左右就跌落到3M左右的传输速度
方式四;axel
与wget方式类似,只是wget是单线程,axel可以是多线程,速度可以比wget翻几倍
1、获得Axel
32位系统:
wget -c http://www.centoscn.com/tool/axel-2.4-1.el5.rf.i386.rpm rpm -ivh axel-2.4-1.el5.rf.i386.rpm #安装
64位系统:
wget -c http://www.centoscn.com/tool/axel-2.4-1.el5.rf.x86_64.rpm rpm -ivh axel-2.4-1.el5.rf.x86_64.rpm #安装
2、使用参数参考
选项 | 相应功能 |
-n | 指定线程数 |
-s | 限制最大速度(带宽) |
-q | 静默模式 |
-o | 文件另存为(到别的目录) |
--help | 显示帮助信息 |
--version | 显示版本信息 |
3、使用案例
限制最大为100kb带宽下载《putty.exe》
axel -s 102400 http://www.centoscn.com/putty.exe #102400为每秒字节数
方式五;bbcp
什么是bbcp: bbcp 是由SLAC(斯坦福直线加速器中心)的Andy Hanushevsky创立的点对点网络文件拷贝工具。经过简单测试,发现速度比 scp 快了10倍左右,因此推荐大家采用bbcp来取代scp等老家伙 :)
速度:针对20G的文件进行了测试,测试下来平均下来速度在21M左右,耗时16分钟
安装bbcp【两端都要安装】
wget http://www.slac.stanford.edu/~abh/bbcp/bin/amd64_rhel60/bbcp -O /usr/bin/bbcp
chmod +x /usr/bin/bbcp
来自http://heylinux.com/archives/2984.html的中文参数解释:
-k 保留所有未传输完成的文件,并允许在重试时进行覆盖
-a 保留checkpoint信息用于校验文件的完整性
-r 递归传输指定路径下的所有文件
-P 2 每两秒显示传输的进程
-V 打印调试信息
-f 强制清除远程主机上传输失败的数据
-w 设置Disk (I/O) buffers
算法为(window = netspeed/8*RTT = 1000Mb/8*74ms = 1000/1000/8*74 = 9.25 M)
对应链接:http://www.slac.stanford.edu/~abh/bbcp/#_Toc332986061
-s 16 设置并发数为16
参考官方建议:http://www.slac.stanford.edu/~abh/bbcp/#_Streams_(-s)
-T "ssh -x -a -p 2222 -oFallBackToRsh=no -i /home/dong.guo/.ssh/id_rsa -l heydevops heylinux.com /usr/bin/bbcp"
指定远端主机的认证方式:
采用-p 2222指定端口;
设置-oFallBackToRsh=no减少ssh响应时间;
设置-i /home/dong.guo/.ssh/id_rsa指定SSH Key;
设置-l heydevops指定登陆用户;
heylinux.com为远程主机地址;
/usr/bin/bbcp为远程主机的bbcp路径;