Linux上的常用文件传输方式介绍与比较_第1页
Linux上的常用文件传输方式介绍与比较_第2页
Linux上的常用文件传输方式介绍与比较_第3页
Linux上的常用文件传输方式介绍与比较_第4页
Linux上的常用文件传输方式介绍与比较_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.Linux 上的常用文件传输方式介绍与比较Linux上的常用文件传输方式介绍与比较2020年04月20日星期二10:25ftp命令使用文件传输协议File Transfer Protocol,FTP在本地主机和远程主机之间或者在两个远程主机之间进展文件传输。FTP协议允许数据在不同文件系统的主机之间传输。尽管这个协议在传输数据上提供了高适应性,但是它并没有尝试去保存一个特定文件系统上的文件属性例如一个文件的保护形式或者修改次数。而且FTP协议很少对一个文件系统的整体构造作假定,也不提供这样的功能,比方递归的拷贝子目录。在使用ftp命令时,需要注意FTP协议的这些特性。当需要保存文件属性或者需

2、要递归的拷贝子目录时,可以使用rcp/scp等命令。ftp命令的一般格式如下:$ftp主机名/IP其中主机名/IP是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于可选项,假设指定主机名,ftp将试图与远程机的ftp效劳程序进展连接;假设没有指定主机名,ftp将给出提示符,等待用户输入命令:$ftp ftp此时在ftp提示符后面输入open子命令加主机名或IP地址,将试图连接指定的主机。不管使用哪一种方法,假设连接成功,需要在远程机上登录。用户假设在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和能将上载文

3、件放到哪个目录中。在远程站点上登录成功后,在ftp提示符下可以自由使用ftp提供的各种子命令,最常用的子命令如下表所示。命令描绘ls列出远程机的当前目录cd在远程机上改变工作目录lcd在本地机上改变工作目录ascii设置文件传输方式为ASCII形式binary设置文件传输方式为二进制形式close终止当前的ftp会话getmget从远程机传送指定文件到本地机putmput从本地机传送指定文件到远程机open连接远程ftp站点quit断开与远程机的连接并退出ftp显示本地帮助信息转到Shell中prompt 1关闭交互形式利用编写ftp脚本可以自动完成文件传输任务。详细方法是使用ftp命令的-i

4、n选项,并重定向ftp命令的输入。如今我们来编写一个利用ftp登录到远程效劳器,并以bin的文件格式,在/home目录下,下载file1.log以及file2.sh至本机/opt/ibm/,并从本地/opt目录上传文件file3.jave至远程效劳器/home的自动化脚本。ftp-ni+open$IP user$USERNAME$PASSWD bin cd/home lcd/opt/ibm mget file1.log file2.sh lcd/opt mput file3.jave ls bye rcp意为remote file copy远程文件拷贝。该命令用于计算机之间进展文件拷贝。其有两

5、种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。rcp-px-k realmfile1 file2 rcp-px-r-k realmfile directory每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rnamerhost:path,其中rname为远程用户名,rhost为远程计算机名,path为该文件的途径。下表说明了rcp命令各个参数的含义。描绘-r递归地将源目录中的所有内容拷贝到目的目录中。假设使用该选项,目的须为一个目录。-p试图保存源文件的修改时间和形式,忽略umask。-k恳求rcp获得在指定区域内的远程主

6、机的Kerberos容许,而不是获得由krb_relmofhost3确定的远程主机区域内的远程主机的Kerberos容许。-x为传送的所有数据进展DES加密。这会影响响应时间和CPU利用率,但是可以进步平安性。假设在文件名中指定的途径不是完好的途径名,那么该途径将被解释为相对远程机上同名用户的主目录。假设没有给出远程用户名,那么使用当前用户名。假设远程机上的途径包含特殊shell字符,需要使用反斜线、双引号或单引号将其括起来,使所有的shell元字符都能被远程地解释。需要说明的是,rcp不提示输入口令,它通过rshremote shell命令来执行拷贝。将本地文件复制到远程登录目录中rcp s

7、ource remoteDir将多个本地文件复制到远程登录目录的子目录中rcp source1 source2 source3 subdirectory in remote system将多个文件从多个远程源复制到使用不同用户名的远程目的中rcp host1.user1:source1 host2.user2:source2 dest.destuser:directory scp命令在网络上的主机之间拷贝文件,它是平安拷贝secure copy的缩写。scp命令使用ssh来传输数据,并使用与ssh一样的认证形式,提供同样的平安保障。scp命令的用法和rcp命令非常类似,这里就不做过多介绍了。一

8、般推荐使用scp命令,因为它比rcp更平安。我们可以通过配置ssh,使得在两台机器间拷贝文件时不需要每次都输入用户名和密码。scp-1246BCpqrv-c cipher-F ssh_config-i identity_file-l limit-o ssh_option-P port-S programuserhost1:file1.userhost2:file2使用scp命令,需要输入密码,假设不想每次都输入,可参考下面的方法。首先生成密钥对$ssh-keygen-t rsa Generating public/private rsa key pair.Enter file in which

9、 to save the key/home/user/.ssh/id_rsa:Created directory/home/user/.ssh.Enter passphraseempty for no passphrase:Enter same passphrase again:Your identification has been saved in/home/user/.ssh/id_rsa.Your public key has been saved in/home/user/.ssh/id_rsa.pub.The key fingerprint is:10:66:da:38:85:8a

10、:8c:bd:db:9c:6e:eb:ee:bd:7d:15 usersomehost在这里,我们指定了生成rsa类型的密钥。在提示密钥的保存途径和密码时,可以直接回车使用默认途径和空密码。这样,生成的公共密钥保存在$HOME/.ssh/id_rsa.pub,私有密钥保存在$HOME/.ssh/id_rsa。然后把这个密钥对中的公共密钥的内容复制到要访问的机器上的$HOME/.ssh/authorized_keys文件中。这样,下次再访问那台机器时,就不用输入密码了。Copy本地文件/etc/eva.log,到远程机器sysB,用户user的家目录下scp/etc/eva.log usersy

11、sB:/home/usercopy远程机器sysB上的文件/home/uesr/eva.log,到本地的/etc目录下,并保持文件属性不变scp-p usersysB:/home/uesr/eva.log/etccopy sysB上的目录/home/user,到本地/home/user/tmp,new dir,/home/user/tmp/user scp-r usersysB:/home/user/home/user/tmp wget是一个经由GPL容许的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 , S和FTP协议,支持代理效劳器以及断点续传功能。wget可实现

12、递归下载,即可跟踪HTML页面上的链接依次下载来创立远程效劳器的本地版本,完全重建原始站点的目录构造,实现远程网站的镜像。在递归下载时,wget将页面中的超级链接转换成指向本地文件,方便离线阅读。由于非交互特性,wget支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。wgetoptionsURL-listwget有很多不同的参数以用于远程站点信息的获取,常用参数如下,更多参数请参照wget帮助手册描绘-r递归下载效劳器上所有的目录和文件。由-l选项来指定递归深度。-b后台下载-m制作站点镜像-c指定断点续传功能。该功能要求效劳器支持断点续传。-I指定下载目录列表,可实现批

13、量下载-A/-R指定承受/回绝下载列表,实现选择性地下载-proxy=on/off指定是否利用代理效劳器进展下载-t,-tries=NUMBER最大尝试链接次数0表示无限制,默认为20次-nc,-no-clobber不覆盖已存在的文件-N,-timestamping只下载比本地新的文件-nd-no-directories不进展目录构造创立-x,-force-directories强迫创立目录构造-nH,-no-host-directories不继承主机目录构造-P,-directory-prefix=PREFIX设置目录前缀递归下载站点的信息。下载所有显示完好网页所以需要的文件,如图片等。在下

14、载不进展上层目录搜索并将绝对链接转换为相对链接。wget-r-p-np-k将在本地硬盘建立的镜像,镜像文件存入当前目录下一个名为 ibm .cn的子目录中也可以使用-nH参数指定不建立该子目录,而直接在当前目录下建立镜像的目录构造,递归深度为4,重试次数为无穷假设连接出现问题,wget将永远重试下去,直至任务完成wget-m-l4-t0使用代理进展下载,并实现断点续传。代理可以在环境变量PROXY或wgetrc文件中设定。-c选项要求效劳支持断点续传。wget-Y on-c另一个可以用来进展文件传输的工具是curl,它是对libcurl库的一个命令行工具包装。libcurl库中提供了相应功能的

15、API,可以在程序中调用。对于libcurl库的使用方法介绍超出了本文的讨论范围。curl使用URL的语法来传输文件,它支持FTP,FTPS, , S,TFTP,SFTP,TELNET等多种协议。curl功能强大,它提供了包括代理支持,用户认证,FTP上载, post,SSL连接,文件续传等许多特性。curloptionsurl其中下载参数大约有80多个,curl的各个功能完全依靠这些参数来完成。下面举例说明curl的一些根本用法。获取GNU的主页curl获取GNU的FTP效劳器上根目录下的README文件curl ftp://README从一个字典中获取curl的定义c

16、url dict://m:curl假设需要指定用户名和密码的话,可以在url中指定,或者使用-u参数curl ftp:/name:passwdmachine.domain:port/full/path/to/file curl-u name:passwd ftp:/machine.domain:port/full/path/to/filecurl会将从指定url处获取的内容打印到标准输出上。假设需要保存在本地文件中,可以使用-o,或使用-O参数指定使用远程主机上的文件名假设url中没有给出文件名的部分,那么此操作将会失败curl ognu.html O使用-x选项来使用代理进展

17、连接curl-x my-proxy:port ftp:/ftp.somesite /README通过使用curl的-T选项来进展上载curl-T-ftp:/ftp.upload /upfile此命令从标准输入读取数据,并上载至远程FTP效劳器上的upfile文件中。也可以指定上载一个本地文件curl-T localfile-a ftp:/ftp.upload /upfile其中-a参数表示以添加方式将localfile中的内容附加到upfile的末尾。总的来说,curl适宜用来进展自动的文件传输或操作序列,它是一个很好的模拟用户在网页阅读器上的行为的工具。尤其当需要在程序中调用时,libcur

18、l是个很好的选择。rsync是一款高效的远程数据备份和镜象工具,可快速地同步多台主机间的文件,其具有如下特性:支持链接、所有者、组信息以及权限信息的拷贝;通过远程shellssh,rsh进展传输;无须特殊权限即可安装使用;流水线式文件传输形式,文件传输效率高;支持匿名操作;需要提及的是rsync以其优越的性能优势区别于其它几种Linux文件传输方法,其同步文件的速度相当快,这主要归功于rsync所使用的传输算法。简而言之rsync算法能在相当短的时间内计算出需要备份的数据,只对源文件与目的文件的不同之处进展传输,从而降低网络中传输的数据量,以此到达快速备份镜像的目的。下面通过一典型应用场景来描

19、绘rsync算法的根本原理:主机A与主机B均有对同一文件的拷贝,用户对主机A上的拷贝进展更新,主机B通过rsync算法对更新后的文件进展同步。以下是该算法的实现步骤:主机B将原始拷贝划分成大小为N的不重合的假设干块文件末尾部分分块大小可能缺乏N,并对这些数据块进展两种不同方式的校验:32位的滚动弱校验、128位的MD4强校验。弱校验较之强校验计算速度快。主机B将每个数据块的弱校验、强校验结果发送给主机A。主机A对更新后的文件拷贝中的每个长度为N的数据块进展弱校验并与从B接收到的弱校验值进展匹配,假设一样再进展强校验匹配。由于弱校验的滚动特性可以快速地挑选出需要进展同步的数据块。该算法的运算量主

20、要集中在主机A上。通过上述计算,主机A将文件的不同部分发送给B,B接收到两个拷贝之间的不同之处,从而同步得到更新后的文件。通过如上方式,rsync防止了对一样数据的传输,减少了网络带宽的浪费。在时间上整个过程中需一个往返,从某种程度上也保证了rsync的优越性能。用户可从官方网站上下载安装rsync的最新版本。使用时需将rsync分别安装于效劳端和客户端,效劳端和客户端使用同一个rsync软件包来实现远程镜像和定期同步更新。需要说明的是一个rsync效劳端可同时备份多个客户端的数据;多个效劳端备份一个客户端的数据。rsync默认端口为873,效劳器在该端口接收客户的匿名或者认证方式的备份恳求。

21、rsync效劳端在使用之前需要进展必要的配置,其配置文件为/etc/rsyncd.conf,进展认证、访问、日志记录等控制。配置文件包括全局参数、模块参数的设置。rsyncd.conf文件中module之前的所有参数为全局参数,也可以在全局参数部分定义模块参数,在这种情况下该参数的值就是所有模块的默认值。全局参数设置程序使用的端口号,指定消息文件、日志文件pid文件以及发送日志消息的级别。模块参数主要定义效劳端哪个目录需要被同步。用户可根据不同的需要指定多个模块,每个模块对应需要备份的一个目录树,即假设有N个需要备份的目录树,那么需要N个模块与之对应。模块中可以定义许多参数,常见参数如下。描绘

22、Comment模块信息描绘,该描绘连同模块名在客户连接得到模块列表时显示给客户。默认没有描绘定义。Path指定供备份的目录途径,必须指定该参数。max connections指定最大并发连接数以保护效劳器,超过限制的连接恳求将被告知随后再试。默认值为0,即没有限制。log file指定日志文件read only设定是否允许客户上载文件。假设为true任何上载恳求均会失败,假设为false且客户端拥有效劳器目录读写权限那么可以上载。默认值为true。write only设定是否允许客户下载文件。假设为true任何下载恳求均会失败,默认值为false。List设定当客户恳求可以使用的模块列表时,是

23、否列出该模块。假设为false,那么创立隐藏的模块。默认值为true。fake super允许文件享有所有权限,而无需后台效劳以root权限进展操作。Filter设置过滤列表以决定哪些文件可由客户端访问。hosts allow指定允许客户连接的IP地址。可以为单个IP地址或整个网段。多个IP或网段需要以空格隔开。默认是允许所有主机连接。dont compress指定不进展压缩处理即可传输的文件,默认值是*.gz*.tgz*.zip*.z*.rpm*.deb*.iso*.bz2*.tbz pre-xfer exec,post-xfer exec设置可在文件传输前/后执行的命令。假设在文件传输前执

24、行的命令失败,那么取消本次传输操作。通过远程shell方式:rsyncOPTIONUSERHOST:SRC DEST使用远程shell如ssh,rsh实现将远程机器的内容拷贝到本地机器。SRC地址途径中以单个冒号:进展分隔。rsyncOPTIONSRCUSERHOST:DEST使用远程shell如rsh、ssh实现本地机器的内容拷贝到远程机器。DEST地址途径中以单个冒号:进展分隔。通过rsync daemon方式:rsyncOPTIONUSERHOST:SRC DEST或rsyncOPTIONrsync:/USERHOST:PORT/SRCDEST从远程rsync效劳器中拷贝文件到本地机。SRC地址途径中以双冒号:进展分隔。rsyncOPTIONSRCUSERHOST:DEST或rsyncOPTIONSRC rsync:/USERHOST:PORT/DEST从本地机器拷贝文件到远程rsync效劳器中。DEST地址途径中以双冒号:进展分隔。假设rsync命令中只指定SRC参数而不指定DEST参数,那么意为显示源文件列表而非进展同步拷贝。rsync有许多功能选项,常用的选项如下:描绘-a,-archive归档形式,保持所有文件属性,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论