Linux上的常用文件传输形式介绍与比较【Linux】Linux上的常用文件传输形式介绍与比较2010-10-14ftpftp命令使用文件传输合同(FileTransferProtocollinux 文件传输方法,FTP)在本地主机和远程主机之间或则在两个远程主机之间进行文件传输。FTP合同答应数据在不同文件系统的主机之间传输。虽然这个合同在传输数据上提供了高适应性并且它并没有尝试往保存一个特定文件系统上的文件属性(比如一个文件的保护模式或则更改次数)。并且FTP合同甚少对一个文件系统的整体结构造假定也不提供这样的功能例如递回的拷贝子目录。在使用ftp命令时须要留心FTP合同的这种特点。当须要保存文件属性或则须要递回的拷贝子目录时可以使用rcp/scp等命令。rcprcp意为"remotefilecopy"(远程文件拷贝)。该命令用于计算机之间进行文件拷贝。其有两种格式。第一种格式用于文件到文件的拷贝第二种格式用于把文件或目录拷贝到另一个目录中。基本句型每位文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下方式rname@rhostpath其中rname为远程用户名rhost为远程计算机名path为该文件的路径。
下表说明了rcp命令各个参数的含意。scp但是scp不能跨越子目录并保存文件的所有者和权限位。scp命令在网路上的主机之间拷贝文件它是安全拷贝(securecopy)的简写。scp命令使用ssh来传输数据并使用与ssh相同的认证模式提供同样的安全保障。scp命令的用法和rcp命令十分类似这儿就不做过多引见了。通常推荐使用scp命令因为它比rcp更安全。我们可以通过配置ssh促使在两台机器间拷贝文件时不须要每次都输进用户名和密码。wgetwget是一个经过GPL许可的可从网路上手动获取文件的自由软件包。它是一个非交互式的命令行工具。支持HTTPHTTPS和FTP合同支持代理服务器以及断点续传功能。wget可实现递回下载即可跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本完全重建原始站点的目录结构实现远程网站的镜像。在递回下载时wget将页面中的超级链接转换成指向本地文件便捷离线浏览。因为非交互特点wget支持后台运行用户在退出系统后仍可继续运行。功能强悍设置便捷简单。基本句型wget有好多不同的参数以用于远程站点信息的获取常用参数如下更多参数请参照wget帮助指南另一个可以拿来进行文件传输的工具是curl它是对libcurl库的一个命令行工具包装。
libcurl库中提供了相应功能的API可以在程序中调用。对于libcurl库的使用方式引见超出了本文的讨论范围。curl使用URL的句型来传输文件它支持FTP,FTPSlinux系统镜像下载,HTTP,HTTPSred hat linux 下载,TFTP,SFTP,TELNET等多种合同。curl功能强悍它提供了包括代理支持用户认证FTP上载HTTPpostSSL联接文件续传等好多特点。基本句型rsyncrsync是一款高效的远程数据备份和存盘工具可快速地同步多台主机间的文件其具有如下特点支持链接、所有者、组信息以及权限信息的拷贝通过远程shell(sshlinux 文件传输方法,rsh)进行传输无须特殊权限即可安装使用流水线式文件传输模式文件传输效率高支持匿名操纵须要提到的是rsync以其优越的性能上风区别于其它几种Linux文件传输方式其同步文件的速率相当快这主要回功于rsync所使用的传输算法。简而言之rsync算法能在相当短的时间内估算出须要备份的数据只对源文件与目标文件的不同之处进行传输因而增加网路中传输的数据量借此达到快速备份镜像的目的。下边通过一典型应用场景来描述rsync算法的基本原理主机A与主机B均有对同一文件的拷贝用户对主机A上的拷贝进行更新主机B通过rsync算法对更新后的文件进行同步。
以下是该算法的实现步骤主机B将原始拷贝界定成大小为N的不重合的若干块(文件末尾部份分块大小可能不足N)并对那些数据块进行两种不同形式的校准32位的转动弱校准、128位的MD4强校准。弱校准较之强校准估算速率快。主机B将每位数据块的弱校准、强校准结果发送给主机A。主机A对更新后的文件拷贝中的每位宽度为N的数据块进行弱校准并与从B接收到的弱校准值进行匹配若相同再进行强校准匹配。因为弱校准的转动特点可以快速地筛选出须要进行同步的数据块。该算法的运算量主要集中在主机A上。通过上述估算主机A将文件的不同部分发献给BB接收到两个拷贝之间的不同之处进而同步得到更新后的文件。通过如上形式rsync避开了对相同数据的传输降低了网路带宽的浪费。在时间上整个过程中需一个往返从某种程度上也保证了rsync的优越性能。结尾与总结综上所述各类文件传输方法的特点表现各有千秋我们从以下几个方面综合对比更深进地了解它们各自的特点。wget通过支持后台执行及断点续传进步文件传输效率rsync则以其高效的传输及压缩算法达到快传输的目的。
rcp只需进行简单的配置创建.rhost文件以及设置/etc/hosts文件中主机名与IP地址列表wget设置设置便捷简单只需在顾客端指定参数执行命令即可rsync在使用前须要对服务端/etc/rsyncd.conf进行参数设定配置内容相对复杂。ftp、rcp不保证传输的安全性scp、rsync则均可基于ssh认证进行传输提供了较强的安全保障。wget也可通过指定安全合同做到安全传输。通过上述的对比不难发觉每种文件传输方式基于其自身的特性与上风均有其典型的适用场景ftp作为最常用的进门式的文件传输方式使用简单便于理解而且可以实现脚本手动化rcp相对于ftp可以保存文件属性并可递回的拷贝子目录scp借助ssh传输数据并使用与ssh相同的认证模式相对于rcp提供更强的安全保障wget实现递回下载可跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本完全重建原始站点的目录结构适宜实现远程网站的镜像curl则适适用来进行手动的文件传输或操纵序列是一个挺好的模拟用户在网页浏览器上的行为的工具rsync更适用于大数据量的逐日同步拷贝的速率很快相对wget来说速率快且安全高效。读者可在不同的场合按照实际须要选择适宜的文件传输方式。历史上的明天