文件传输原理
文件传输是信息传输的一种形式,它是在数据源和数据宿之间传送文件数据的过程,也称文件数据通信。操作系统把文件数据提取到内存中做暂存,再复制到目的地,加密就是在文件外加了一个壳,文件本身还是一个整体,复制只是把这个整体转移到其它地方,不需要解密,只有打开压缩包时才需解密。一个大文件作为一个数据整体,是不可能瞬间从一台 AIX 主机转移到其它的主机,传输是一个持续的过程,但不是把文件分割了,因此,如果在传输的过程中意外中断,目标路径中是不会有传输的文件,另外,如果传输的是多个文件,那么,这些文件是按顺序分别传输,如果中间中断,则正在传输的文件会传输失败,但是,之前已经传完的文件传输成功(如果传输的是文件压缩包,那么,不管里面有几个文件,它本身被视为一个文件)。
AIX 平台上,通常我们看到的 FTP、SCP、RCP、NFS 等等,都是可以用来传输文件数据的工具,下面我们将详细介绍 AIX 上主要文件传输工具的特点以及用法。
FTP(文件传输协议)
介绍
FTP 是最常见的文件传输工具,用于 Internet 上的控制文件的双向传输,同时,它也是一个应用程序(Application)。用户可以通过它把自己的 AIX 机与世界各地所有运行 FTP 协议的服务器相连,访问服务器上的大量程序和信息。使用 FTP 协议需要开放相应的端口,比如默认的 21 号端口。
特点
1 .在传输方式上具备高适应性,大多数操作系统都支持 FTP 协议,在 AIX 平台上可以通过 FTP 与其他平台(诸如:AIX,Windows,Linux,Solaris,OEMVS 等等)机器进行数据交互。
2 .文件传输方式很全面,比如提供 ASCII 传输模式与二进制传输模式,用户可以根据需要选择不同传输模式。
3 . FTP 传输普通文件数据的优势是不容置疑的,但是对于一些重要保密数据的传输,其过程中有安全漏洞 , 即其默认传输密码的过程是明文传送的 , 安全性极差。针对这一情况 FTP 做了安全方面的改进,产生了 SFTP,但是貌似使用情况并不是很广泛。
4 . FTP 不能保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。而且 FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。在使用 FTP 命令时,需要注意 FTP 协议的这些特性。当需要保留文件属性或者需要递归的拷贝子目录时,可以考虑使用 RCP/SCP 等命令。
常用示例
1 . [root@babu> /tsmserv] $ ftp dumber
图 1.FTP 文件传输的基本用法 1
该命令是最基本的 FTP 命令,先登到目标机器上,然后通过 CD 命令进入到目标文件目录,采用 get 命令将目标文件传输到本地机器的当前目录,如果是往目标文件目录传输文件,那么采用 put 命令。默认的文件传输方式是基于 ASCII 码的,如果要以二进制格式传输文件,那么要先输入 bin 命令,然后再用 put 或 get 命令。
2 .如果需要传输一个目录里的所有文件,那么可以使用 mput 或 mget 命令来替代 put 或 get 命令。
图 2.FTP 文件传输的基本用法 2
RCP(remote copy 协议)
介绍
该命令用于在计算机之间进行文件拷贝,用户能用命令 RCP 从远程系统复制文件到本地系统中,RCP 执行文件传输的功能,它的操作和 cp 命令很相似,但它可以通过网络连接到另一系统。它有两种格式:第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。
要使用 rcp,需要具备以下条件:
1 .对文件的读权限以及对目录路径下所有目录的读和执行权限。
2 .远程系统上的帐户(登录名)。
3 . rhosts
.rhosts 文件位于远程系统的主目录下,其中包含本地系统的名称和本地登录名。
特点
- 文件复制功能很强大,它支持文件传输的源头和目的地分别为:两个均为本地机器、一个是本地机器一个是远程机器、两台不同的远程机器或是同一台远程机器上不同路径下的文件传输。
- RCP 不提示输入口令,它通过 RSH(remote shell)命令来执行拷贝。
- 能够保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数,以及文件拥有者,所属群组,权限和时间等等)。能够胜任保留文件属性或者需要递归地拷贝子目录。
常用示例
- 将本地机器上的文件传输到远程机器的指定路径。
[root@babu> /tsmserv] $ rcp ./tt dumber:/logs/mine/
图 3. RCP 基本用法 1

2. 将远程机器 1 上的指定文件传输到远程机器 2 上的指定路径。
[root@babu> /tsmserv] $ rcp aixsvt01:/svt1/filea dumber:/logs/mine/
图 4. RCP 基本用法 2

3 .将指定的目录传输到远程机器上的指定路径。
图 5. RCP 基本用法 3
SCP(安全拷贝 secure copy)
介绍
SCP 命令的用法和 RCP 命令格式非常类似,区别就是 SCP 提供更安全保障,SCP 在需要进行验证时会要求你输入密码或口令,一般推荐使用 SCP 命令,因为它比 RCP 更安全。SCP 命令使用 SSH 来传输数据,并使用与 SSH 相同的认证模式,提供同样的安全保障,SSH 是目前较可靠得,为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SCP 是基于 SSH 的应用,所以进行数据传输的机器上必须支持 SSH 服务。
特点
- 相比 FTP 传输方式,SCP 类似于 RCP, 它能够保留一个特定文件系统上的文件属性,能够胜任保留文件属性或者需要递归的拷贝子目录。
- 相比于 RCP,它具备更好文件传输保密性。与此同时,付出的代价就是文件传输时需要输入密码而且涉及到 SSH 的一些配置问题,这些都影响其使用的方便性,对于有特定需求的用户,可能是比较合适的传输工具。
常用示例
- 使用 SCP 命令,需要输入密码,如果不想每次都输入,可以通过配置 SSH,这样在两台机器间拷贝文件时不需要每次都输入用户名和密码:
图 6. 生成 RSA 类型的密钥 1

上述命令生成 RSA 类型的密钥。在提示密钥的保存路径和密码时,可以直接回车使用默认路径和空密码。这样,生成的公共密钥保存 /.ssh/id_rsa.pub,私有密钥保存在 /.ssh/id_rsa 。然后把这个密钥对中的公共密钥的内容复制到要访问的机器上的 /.ssh/authorized_keys 文件中。这样,下次再访问那台机器时,就不用输入密码了。
图 7. SCP 密钥文件

将本地机器上的文件传输到远程机器的指定目录下 , 并保持文件属性不变。
图 8. SCP 基本用法 1

NFS(Network File System 网络文件系统)
介绍
NFS 可以将远程主机上的分区(目录)通过网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。在 AIX 机器上可以通过 NFS 与其他 AIX/Linux 机器进行文件传输,但是,如果要与 Windows 系统机器进行文件传输,可能还需要在 windows 机器上安装第三方的支持软件,因为 Windows 不支持 NFS。
特点
1 .可以通过建立 NFS,把远程主机上的特定分区共享到本机目标系统上,可以直接在目标系统上拷贝文件数据到指定路径,操作很直观、方便。
2 .如果不做 umount 操作,NFS 始终连通可用,因此,对于频繁进行文件数据传输的 AIX 主机之间采用 NFS 进行数据交换,将会很便捷,一次配置,长久受益。
常用示例
在 AIX 平台上可以采用 smity/smitty 工具进行 NFS 的配置:
[root@aixsvt01> /] $ smitty nfs
- 在 NFS 部分选择 Network File System(NFS)
图 9.NFS 配置 1

- 选择添加一个目录到 Exports List, 这个目录就是远程机器包含传输文件的目录或分区。
图 10.NFS 配置 2

- 输入目录或分区名。
图 11.NFS 配置 3

- 在目标机器上把远程机器上开通的 nfs 文件系统印象到本地一个虚拟目录(用户可以任意取一个唯一名)。
图 12.NFS 配置 4

如果不需要进行文件传输了,可以取消 nfs 服务,只需 unmount 掉目标机器上的虚拟目录即可。
[root@babu> /] $ unmount /mnt
除了上述几中工具以外,还有一些第三方软件工具(如:WGET、RSYNC 等)也是 AIX 平台上数据传输的好帮手,WGET 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包 , 它是一个非交互式的命令行工具。支持代理服务器以及断点续传功能。WGET 可实现递归下载,RSYNC 具备高效率的传输及压缩算法,能实现快传输的目标。
总结
在 AIX 系统上进行文件传输有多种方式,要选择合适的传输工具进行传输,需要考虑几个方面的因素。综上所述,各种文件传输方式的特征表现各有千秋,我们从以下几个方面综合对比,更深入地了解它们各自的特性。
FTP 不需要做过多的配置,只需要开放相应的端口(默认是 21 号端口)即可, RCP 相对于 FTP 可以保留文件属性以及可递归的拷贝子目录,只需进行简单的配置。SCP 也不是很麻烦,如果想每次传输的时候,不用输入密码,那么只需要配置一下相应的密钥。如果采用第三方工具,比如 WGET、RSYNC, 在使用前需要在服务端进行参数设定,配置内容相对复杂。
RCP、FTP 并不能保证传输的安全性,SFTP 则具备安全传输特性;SCP、RSYNC 则均可基于 SSH 认证进行传输,提供了较强的安全保障。 第三芳工具 WGET 也可通过指定安全协议做到安全传输。
通过上述的对比可以发现,每种文件传输方法基于其自身的特点与优势,均有其典型的适用场景,选择合适的文件传输方式,会让您更加方便和愉悦地工作。