Linux 上的常用文件传输方式介绍与比较【精华】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正文

何兴建

文章:9篇

大洋币:24枚

时间:2011-08-08 引用

ftp

ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间

或者在两个远程主机之间进行文件传输。

FTP 协议允许数据在不同文件系统的主机之间传输。尽管这个协议在传输数据上提供

了高适应性,但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文

件的保护模式或者修改次数)。而且FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。在使用 ftp 命令时,需要注意 FTP 协

议的这些特性。当需要保留文件属性或者需要递归的拷贝子目录时,可以使用 rcp/scp 等命令。

基本语法

ftp 命令的一般格式如下:

$ ftp 主机名 /IP

其中“主机名 /IP ”是所要连接的远程机的主机名或 IP 地址。在命令行中,主机名属于可选项,如果指定主机名,ftp 将试图与远程机的 ftp 服务程序进行连接;如果没有指定主机名,ftp 将给出提示符,等待用户输入命令:

$ ftp

ftp >

此时在 ftp> 提示符后面输入 open 子命令加主机名或 IP 地址,将试图连接指定的主机。不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机

上有帐号,就可以通过 ftp 使用这一帐号并需要提供口令。在远程机上的用户帐号的

读写权限决定该用户在远程机上能下载什么文件和能将上载文件放到哪个目录中。在

远程站点上登录成功后,在“ ftp> ”提示符下可以自由使用 ftp 提供的各种子命令,最常用的子命令如下表所示。

表 1. ftp 子命令

命令描述

ls 列出远程机的当前目录

cd 在远程机上改变工作目录

lcd 在本地机上改变工作目录

ascii 设置文件传输方式为 ASCII 模式

binary 设置文件传输方式为二进制模式

close 终止当前的 ftp 会话

get (mget) 从远程机传送指定文件到本地机

put (mput) 从本地机传送指定文件到远程机

open 连接远程 ftp 站点

quit 断开与远程机的连接并退出 ftp

? 显示本地帮助信息

! 转到 Shell 中

prompt 1 关闭交互模式

使用实例:

利用编写 ftp 脚本可以自动完成文件传输任务。具体方法是使用 ftp 命令的 -in 选项,并重定向 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

rcp 意为“ remote file copy ”(远程文件拷贝)。该命令用于计算机之间进行文件拷贝。其有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。

基本语法

rcp [-px] [-k realm] file1 file2

rcp [-px] [-r] [-k realm] file directory

每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rname@rhost:path,其中 rname 为远程用户名,rhost 为远程计算机名,path 为该文件的路径。下表说明了 rcp 命令各个参数的含义。

表 2. rcp 命令的命令行参数

选项描述

-r 递归地将源目录中的所有内容拷贝到目的目录中。若使用该选项,目的须为一个目录。

-p 试图保留源文件的修改时间和模式,忽略 umask 。

-k 请求 rcp 获得在指定区域内的远程主机的 Kerberos 许可,而不是获得由

krb_relmofhost(3)确定的远程主机区域内的远程主机的 Kerberos 许可。

-x 为传送的所有数据进行 DES 加密。这会影响响应时间和 CPU 利用率,但是可以提高安全性。

如果在文件名中指定的路径不是完整的路径名,则该路径将被解释为相对远程机上同名用户的主目录。若没有给出远程用户名,则使用当前用户名。如果远程机上的路径包含特殊 shell 字符,需要使用反斜线(\)、双引号(”)或单引号(’)将其括起来,使所有的 shell 元字符都能被远程地解释。需要说明的是,rcp 不提示输入口令,它通过 rsh(remote shell)命令来执行拷贝。

使用实例:

将本地文件复制到远程登录目录中

rcp

将多个本地文件复制到远程登录目录的子目录中

rcp

将多个文件从多个远程源复制到使用不同用户名的远程目标中

rcp

scp

scp 命令在网络上的主机之间拷贝文件,它是安全拷贝(secure copy)的缩写。 scp 命令使用 ssh 来传输数据,并使用与 ssh 相同的认证模式,提供同样的安全保障。scp 命令的用法和 rcp 命令非常类似,这里就不做过多介绍了。一般推荐使用 scp 命令,因为它比 rcp 更安全。

我们可以通过配置 ssh,使得在两台机器间拷贝文件时不需要每次都输入用户名和密码。

基本语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]

[-l limit] [-o ssh_option] [-P port] [-S program]

[[user@]host1:]file1 [...] [[user@]host2:]file2

使用 scp 命令,需要输入密码,如果不想每次都输入,可参考下面的方法。

首先生成密钥对

相关文档
最新文档