FTP服务
出处:按学科分类—工业技术 企业管理出版社《工程师手册》第891页(10299字)
当用户不希望在远程联机的情况下浏览存放在与Internet联网的某一台计算机上的文件时,他可能更乐意先将这些文件取回到用户自己在本地用的联网的计算机中,这样不但能为用户节省实时联机的长时间通信费用,还可以让用户可以从容的阅读和处理这些取来的文件。Internet提供的文件传送服务FTP正好能满足用户的这一需求。
1.FTP功能
FTP服务是由TCP/IP的文件传送协议(File Transfer Protocol)支持的。无论两台加入Internet网的计算机在地理位置上相距多远,只要二者都支持FTP协议,网上的用户就能将一台计算机上的文件传送到另一台上。当然,不同计算机操作系统支持的FTP命令可能有一些细微的差别,但其基本的命令是一致的。与远程登录类似的是,FTP是一种实时的联机服务,在进行工作时用户首先要登录到对方的计算机上;与远程登录不同的是,用户在登录后仅可以进行与文件搜索和文件传送有关的操作.如改变当前工作目录、列文件目录、设置传输参数、传送文件等。使用FTP几乎可以传送任何类型的文件:正文文件、二进制可执行程序文件、图像文件、声音文件、数据压缩文件等。
用户在使用提供FTP服务的计算机时是需要输入相应的口令才能被允许登录的。在Internet网上的许多信息服务机构为了方便用户提取他们公开发布的文件,提供一种称为“不记名文件传送服务”(Anonymous FTP),用户在登录时可以用anonymous作用户名,用自己的电子邮箱地址作口令。
由于越来越多的公司、政府机构和大学把它们已实现计算机化的数据转换到Internet网上,使用FTP几乎可以获得任何领域的信息。另外,Internet现已成为世界上最大的软件流通渠道.通过FTP还可以获取数以千计的计算机程序软件。
2.FTP的基本命令
(1)建立与远程计算机FTP连接的命令
启动FTP并建立与远程计算机的FTP连接的前提是两台计算机都支持FTP协议,启动命令如下:
ftp远程计算机域名
一旦FTP成功建立与远程计算机的连接,对方的计算机将要求用户提供用户名称和登录口令。以下举例说明我们从一台运行UNIX系统的计算机通过FTP登录到一台域名为pilot.njin.net的计算机的过程(以下加下划线的为用户键入的命令):
% ftp pilot.njin.net
220 pilot.njin.net FTPserver(Rutgers Version 4.3)ready
Connected to pilot.njin.net
Name(pilot.njin.net:eagle): eagle [这里给出用户的户名]
331 Password required for eagle.
Password: [键入口令,但不显示]
230 User eaglelogged in.
FTP〉 [登录成功,显示提示符FTP>,等待键入FTP命令]
FTP提示符的出现,标志着系统已进入FTP命令状态,可以键入FTP命令进行工作了。FTP命令状态有两种:远程状态与本地状态。远程状态是由对方计算机处理用户键入的命令;本地状态则由本地计算机为你服务。
建立与远程计算机连接时常常由于对方计算机因某种原因(系统故障、例行关机维护等)导致失败。这时FTP往往仅能提示有限的信息,如“对方计算机不响应呼叫”(hest not responding)、“对方计算机连不通”(host unreachable)或“连接操作已超过规定时间”(connection timed out)等,这时用户只能等待一些时间后再试。若长期连不通,则只有设法同管理该计算机的机构联系以查明原因。
(2)终止与远程计算机的FTP连接和退出FTP系统的命令
在远程FTP连接状态键入命令:
FTP〉 cllose
则终止与远程计算机的FTP 连接退回到本地FTP命令状态。当与远程计算机建立FTP连接失败时也返回本地FTP命令状态。例如:
% ftp pilot.njin.net
220 pilot.njin.net FTPserver (Rutgers Version 4.3)ready
Connected to pilot.njin.net
Name(pilot.njin.net:eagle):tiger [这里给出用户的户名]
331 Password required fortiger.
Password: [键入口令,但不显示]
530 User tiger access denied. [远程连接失败]
FTP> [进入本地FTP命令状态]
这时若希望再次建立远程FTP连接,可使用open命令:
FTP〉 open远程计算机域名
使用open命令的前提是必须在当前没有和任何远程计算机建立FTP连接的状态下进行。
无论在远程或本地FTP命令状态,键入命令quit或bye都使用户从FTP命令状态退出。若在远程FTP连接状态,在退出FTP之前使用这些命令,则可终止和远程计算机的FTP连接。例如:
FTP〉 quit
221 goodbye.
% [退回UNIX操作系统]
(3)文件目录查询命令
在远程FTP命令状态下,用户可以通过相应的命令改换自己在计算机文件系统中当前的工作目录或列出目录中存放文件的情况,以便搜索自己找的文件。
①查询当前工作目录命令pwd
FTP〉 pwd
②改变当前工作目录命令cd与lcd
由于FTP在工作时要用到两个目录,用户在远程计算机上的工作目录和本地计算机上的工作目录,因此有两条相应的命令。需要改变在远程计算机上的工作目录时,使用cd命令:
FTP〉 cd目录
当需要改变在本地计算机上的工作目录时,使用lcd命令:
FTP〉 lcd目录
这里目录的格式是用符号“/”隔开的一系列字符串目录名,如:/ftp/public/text。
·若命令中未给出目录,则lcd命令使用户返回缺省的工作目录,而cd命令一般不允许这样做。
·若目录是以符号“/”开头,则从根目录开始搜索定位要改换的目录(绝对目录路径)。
·若目录是以字母或数字开头,则从当前工作目录中寻找匹配的子目录(相对目录路径)。
·若目录为两个点“..”,则将当前工作目录的上一级目录(父目录)作为新的工作目录。
·进入一个目录后所能够进行的文件操作权限,由该目录的主人限定。
③列目录命令dir与ls
命令dir为用户列出详细格式的文件目录。其命令格式为:
FTP〉 dir 文件名 目标文件
其中文件名或目标文件为选用参数。文件名用来限定所列文件的名称特征,可以是单文件名,可以是用通配符号“*”或“?”说明的具有某一类特征的文件,也可以是一个目录名。若不给出文件名,则列出当前工作的目录中的全部文件。若给出的是目录名,则列出指定目录中的全部文件。目标文件用来指定将在本地计算机上建立的文件,它的内容是在远程计算机列目录的结果。当不给出目标文件时,列目录的结果显示在输出屏幕上。例如:
FTP〉 dir r*.txt [列出以字母r开头,类型为txt的文件]
200 PORTcommand successful.
150 Opening ASCⅡ mode data connection for/docurnents/text.
-rw-r--r--1 root 61441 Dec 20 14∶20 readme.txt
-rw-r--r--1 root 12432 Mar 1 8∶01 record.txt
226 Transfer complete.
156 bytes received in 00∶00∶11.35 seconds
FTP〉
命令ls以简略格式为用户列出文件目录。其命令格式为:
FTP〉 ls 文件名 目标文件
格式含义同dir命令。例如:
FTP〉 ls [列出目录中全部文件]
200 PORT command successful.
1 50 Opening ASCⅡ mode data connection for a file list.
pub
cdrom
readme.txt
record.txt
TRANSFER
internet-course
226 Transfer complete,
80 bytes received in 00∶00∶05.01 seconds
FTP〉
若对方的计算机使用的是UNIX操作系统,则可以使用含修饰符-1R的ls命令列出当前工作目录及其所有的从属子目录所含的文件。但这可能产生大量屏幕输出信息。建议将输出送入目标文件中。命令格式如下:
FTP〉 ls-lR 目标文件
在文件名使用通配符“*”和“?”可以让用户方便的选择文件,但应注意在FTP命令状态下,它们在操作时的作用是由命令ls以简略格式为用户列出文件目录。其命令格式为:
FTP〉 ls 文件名 目标文件
格式含义同dir命令。
4.批量文件传送命令mget和mput
使用批量文件传送命令mget和mput可以进行本地计算机和远程计算机之间的双向成批文件传送。
命令mget从远程计算机上复制指定的多个文件传送到本地计算机上,命令格式为:
FTP〉 mget要从远程计算机上取来的成批文件说明
命令mput将本地计算机上的指定的多个文件送到远程计算机上,命令格式为:
FTP〉 mput要从本地计算机送出的成批文件说明
在批量文件传送时,新建立的文件沿用原来文件的文件名。命令mget和mput中的成批文件说明可以用通配符“*”和“?”,也可以是由空格分开的一系列文件名。通配符的含义随操作系统的不同而不同。例如:mget readme?.txt或mget readme1.txt readme2.txt。
在进行批量文件传送时,可以要求FTP对入选的文件在传送之前逐一提请用户认可。这是通过命令prompt进行设置的:
FTP〉 prompt
这是一个开关式命令,使用一次设为开放提示状态,再用一次则关闭提示状态。现举例说明开放提示状态时的mget命令使用情况:
FTP> mget example * [索取文件名以example开头的文件]
mget example.txt?yes [提请用户认可传送文件example.txt]
200 PORT command successful.
150 ASCII data connection for example.txt(1980 bytes).
226 ASCII transfer complete.
1ocal:example.txt remote:example.txt
2785 bytes received in0.03 seconds(91Kbytes/s)
mget example.c?no [提请用户认可传送文件example.c]
mget example1 ?no [提请用户认可传送文件example1]
FTP>
5.传送不同类型的文件
FTP可以设置为两种传送文件的模式:传送正文文件的ASCII传送模式和传送二进制文件的Binary传送模式。
在Binary传送模式下,被传送的源文件与传送后生成的副本文件在每一个二进制位上都是等同的。也就是说,当一个文件从其宿主计算机被传送到目标计算机上时,是不管其内容对目标计算机是否有意义的。例如,当从一台IBM/PC系列个人用计算机传送一个可执行程序到一台DECVAX计算机后,该程序是不能在VAX计算机上运行的。但若将这个程序又从这台VAX计算机传送到另一台IBM/PC计算机上后,它仍是可以运行的。
在ASCII传送模式下,FTP要保证被传送的源文件与传送后生成的副本文件在文本上是等同的。也就是说,当一个文本文件从其宿主计算机被传送到目标计算机上时,要保证其每一个字符的含义在目标计算机上是不变的。要做到这一点,FTP有时在不同的操作系统间要进行自动的字符翻译转换。例如,当用户将一台APPLE公司Macintosh计算机上的正文文件传送到一台IBM VM计算机系统时,由于二者用于表达字符的代码系统不一致,就需要FTP进行字符转换处理。
设置二进制传送模式是用命令binary进行的,设置正文文件传送模式是用命令ascii进行的,设置映像传送模式命令image与binary等效。命令的使用方法如下:
FTP> binary [设置为二进制传送模式]
200Type set to I. [已设为I(Image)二进制模式]
FTP> ascii [设置为正文文件传送模式]
200Type set to A. [已设为A(Ascii)文本模式]
使用FTP进行文件传送时若是用错了模式,将使传送的文件失去使用价值。对于同一类型的计算机且用同样的操作系统,用binary或ascii模式传送二进制文件或文本文件都是可行的。但对于不同的计算机系统就不行了。因此在传送前弄清要传送的文件类型是十分重要的。对于UNIX操作系统,可以用命令file来检测文件的类型。下表为常见的文件类型及其对应的传送模式:
6.不记名FTP服务
不记名FTP服务(Anonymous FTP)是为了方便用户通过Internet获取各种信息服务机构公开发送的信息而设置的。用户在登录到这些FTP信息服务器时无须事先申请用户名和口令,而代之以anonymous作为户名,用任意字符串作为口令。一般来说,希望用户用自己的电子邮箱地址作口令,这样有助于FTP服务器的系统管理员掌握用户的情况和必要时容易同用户进行联系。
不记名FTP对用户使用权限有一定限制:通常仅允许用户获取文件——使用get命令,而不允许用户修改现有的文件或向不记名FTP服务器传送文件;对于用户可以获取的文件范围也有一定限制;在用户选择工作目录时,不记名FTP往往将用户限制在树状文件目录系统的某一分支中。当用户以anonymous登录到一个不记名FTP服务器时,用户将自动进入某一指定目录,其后用户使用cd命令只能进入该目录的所属子目录,而不能移出该目录限定的分支。在cd命令中使用绝对目录路径方式的“/”是无效的(虽然它的格式是合法的)。但命令cd/pub除外,它已被重新定义,使用户重新返回限定分支的父目录,这对于在树状文件系统中迷失了路径的用户很有用处。最后应指出,当你使用不记名FTP访问某一FTP服务器时,你是该系统的“客人”,你有时会看到该系统发布的欢迎你来做客的时间通造,例如:
230-Available for anonymous·ftp only between 5 pm EST
230-and 8 am EST.
[不记名FTP服务仅在美国东部标准时间下午5时至次日上午8时开放]
用户应注意这些信息。除此之外,不记名FTP的操作与普通FTP相同。
7.超长文件和成批文件的传送
Internet网上的用户经常遇到希望通过网络传送超长的文件或传送成批的文件,例如希望传送一个很大的数据库文件、一批报告等等。另外,为了便于用户获取超长的文件或成组的文件,在不记名FTP服务器中,常常将这类文件预先进行压缩或打包处理。因此,用户在传送或使用这类文件时应具备一定的文件压缩与文件还原、文件打包与文件解包处理技能。
(1)压缩文件
为了降低文件在计算机中的存放与通过网络进行传送的系统开销,一些特别长的文件经常以压缩格式出现在计算机中。目前已有多种数据压缩技术,及各种各样的文件压缩应用程序可供选用。文本文件经过这些数据压缩程序处理可以显着缩短长度,缩减到原来长度的70%至30%不等。
通过网格把以压缩格式存放的文件正确传送到目的地并不困难,通过FTP的二进制传送模式binary就可以办到,但这时任务仅完成了一半。如何正确将压文件还原为可用的文件则是一件既简单又复杂的工作。说它复杂,是因为到目前为止尚无一个统一的数据压缩格式标准和统一的数据压缩处理的应用软件包,用户必须学会识别各种各样的压缩文件并选用正确的还原方法,正所谓“难者不会”;说它简单,是指在明确了所获的文件的压缩格式后,运用相应的解压缩软件对它进行还原并不困难,即“会者不难”。
压缩文件通常用文件名中的后缀或文件类型部分加以标识。下表为常见的一些数据压缩程序及其压缩文件后缀:
当你在远程计算机上发现带有上述后缀的文件时,便意味着那些文件是经过压缩处理的。文件的后缀可以帮助你正确的选择还原程序。还原程序依计算机系统的不同而不同。获取这些还原程序的一个重要途径是通过FTP。
(2)压缩文件的释放还原
当你通过FTP从远程计算机上获取到一个或一批已被压缩或打包处理的文件后,首先应判断出这些文件是何种类型的文件,以便决定选择何种还原程序。这里“打包”是指将一批内容相关的文件压缩处理成为一个文件的情形。一个功能完善的FTP服务器往往在其主目录中备有帮助文件,该文件对压缩文件具有的类型及如何正确选择与使用还原释放程序加以说明。用户应注意首先获取这个文件。另外,仔细研究对方FTP服务器上的索引文件也是十分必要的,它往往提供了每个文件内容的简要介绍。索引文件常常不止一个,采取分级方式提供,每个子目录一个。