大文件传输工具

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/

时间: 2024-12-25 10:54:29

大文件传输工具的相关文章

一个好用的大文件传输工具:支持选点续传、错误重传

数据正在爆炸式增长,几乎每两年翻一番.这些数据和文件可能是组织机构重要的业务数据,也可能是其重要的信息资源. 通常情况下,组织机构使用邮件.QQ.FTP等常规方式传输文件,但是当文件容量在2-3G以上时,上述方法就变得非常缓慢.如果文件更大时,快递硬盘等方式经常被使用,但是快递硬盘通常要花二三天的时间,不能满足及时获取文件的要求. 选择一个便捷的方法,高效传输和管理大文件,对于组织机构业务开展的来说非常重要.一个好的大文件传输解决方案至少应该包括以下特点: 优异的传输性能对于大文件传输来说,优异

5款顶尖Windows文件传输工具

5款顶尖Windows文件传输工具 英文原文: Drasko 日常工作中,公司里的系统管理员或其他岗位的员工都需要传递大量各种类型的文件和文档.其中一些可以通过 email 收发.但由于 email 附件有文件大小限制,因此需要使用文件传输工具来传递较大的文件.在这种情况下就需要文件传输工具出场了.本文即将介绍 5 款顶尖高效免费 Windows 文件传输工具. FileZilla FileZilla 是 Windows 上使用最多的免费 ftp 客户端.它是一款遵循 GNU 公共许可证发布的开

Windows下基于TCP协议的大文件传输(流形式)

简单实现TCP下的大文件高效传输 在TCP下进行大文件传输,不像小文件那样直接打包个BUFFER发送出去,因为文件比较大可能是1G,2G或更大,第一效率问题,第二TCP粘包问题.针对服务端的设计来说就更需要严紧些.下面介绍简单地实现大文件在TCP的传输应用. 粘包出现原因:在流传输中出现,UDP不会出现粘包,因为它有消息边界(参考Windows 网络编程) 1 发送端需要等缓冲区满才发送出去,造成粘包 2 接收方不及时接收缓冲区的包,造成多个包接收 解决办法: 为了避免粘包现象,可采取以下几种措

基于FTP协议的文件传输工具(SOCKET、FTP方面、MFC方面)

一.本课程是怎么样的一门课程(全面介绍) 1.简介:FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息.2.作用:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算

WCF大文件传输服务

由于项目需要,自己写一个基于WCF的大文件传输服务雏形.觉得有一定的参考价值,因此放在网上分享. 目前版本为v1.1特点如下: 1.文件传输端口为18650 2.上传和下载文件 3.支持获取文件传输状态(未开始.传输中.传输完成.出现错误) 4.支持获取文件传输进度(范围0~1) 5.支持获取文件传输速度速度(按文件传输速度大小 自动切换 KB/s 和 MB/s显示) 项目解决方案如下: 服务断包括WCF寄宿的控制台服务和Windows 服务以及文件传输服务核心 公共包括一些帮助类(文件HASH

WinSock实现的大文件传输

class file_send { public: SOCKET send_s; //The socket that used for sending which is established previously char * filename; //The full path of the file that the client requested void send_file() { percentage=0; FILE * pFile=fopen(filename,"rb")

C++大文件传输

C/C++大文件/数据网络传输方法总结 在C/C++网络编程中不免会遇到需要传输大数据.大文件的情况,而由于socket本身缓冲区的限制,大概一次只能发送4K左右的数据,所以在传输大数据时客户端就需要进行分包,在目的地重新组包.而实际上已有一些消息/通讯中间件对此进行了封装,提供了直接发送大数据/文件的接口:除此之外,利用共享目录,ftp,ssh等系统命令来实现大文件/数据也不失为一种好的方法. 1.基础的基于socket进行传输 基础的基于socket进行传输关键在于控制,需要自己行分包和组包

networkcomms通信框架实现大文件传输

networkcomms2.3.1通信框架实现大文件传输(为节省空间,不包含通信框架源码,通信框架源码请另行下载) 文件传送在TCP通信中是经常用到的,本文针对文件传送进行探讨 经过测试,可以发送比较大的文件,比如1个G或者2个G 本文只对文件传送做了简单的探讨,示例程序可能也不是很成熟,希望本文起到抛砖引玉的作用,有兴趣的朋友帮忙补充完善 首先看一下实现的效果 服务器端: 客户端(一次只能发送一个文件): 服务器端收到的文件,存放到了D盘根目录下(存放的路径可以根据情况修改) 本程序基于开源的

curl基于URL的文件传输工具

简介 cURL是一款开源的基于URL的文件传输工具,支持HTTP.HTTPS.FTP等协议,支持POST.cookie.认证.扩展头部.限速等特性. curl命令用途广泛,比如下载.发送http请求.指定http头部等. wget是个专职的下载利器,简单,专一,极致:而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,对请求报文进行设置,从而对网页进行调试. wget支持递归下载,curl不支持.所以区分下来就是下载数据使用wget,网页调试使用curl. 常用功能 curl UR