大文件传输工具

Posted BigBao的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大文件传输工具相关的知识,希望对你有一定的参考价值。


http://heylinux.com/archives/2984.html

http://imysql.cn/2008_12_08_using_bbcp_instead_scp

http://linux.cn/article-4527-1-rss.html

http://teachmyself.blog.163.com/blog/static/188814229201242314917237/


 

由来:

 

局域网双机拷贝单个大文件 【200G大小】,不要问我是啥! 也不要问我为毛会生成那么大的单文件,事实就是这样!然后就开始了操蛋之旅!再次做下记录备忘!

 

尝试:

方式一: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左右的传输速度

 

方式四;bbcp 【感谢纪爷的推荐】

什么是bbcp: bbcp 是由SLAC(斯坦福直线加速器中心)的Andy Hanushevsky创立的点对点网络文件拷贝工具。经过简单测试,发现速度比 scp 快了10倍左右,因此推荐大家采用bbcp来取代scp等老家伙 :)

速度:针对20G的文件进行了测试,测试下来平均下来速度在21M左右,耗时16分钟

 

附图为2G文件的传输速度:

技术分享

总结:不用的应用场景使用不同的工具,单个大文件个人感觉bbcp还是极好极好的!

 

安装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路径;

 

参考文档:

http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm

http://heylinux.com/archives/2984.html

http://imysql.cn/2008_12_08_using_bbcp_instead_scp

http://linux.cn/article-4527-1-rss.html

http://teachmyself.blog.163.com/blog/static/188814229201242314917237/

以上是关于大文件传输工具的主要内容,如果未能解决你的问题,请参考以下文章

linux与windows之间传输文件工具rz上传大文件失败问题解决方案

解析rsync大文件传输慢原因以及解决方法

怎么用JAVA实现大文件分段传输

大数据迁移

java传输大文件?

基于RMI服务传输大文件的完整解决方案