系统管理指南:网络服务

登录到远程系统 (ftp)

ftp 命令打开 Internet 文件传输协议的用户接口。此用户接口又称为命令解释程序,它允许您登录到远程系统并对其文件系统执行各种操作。下表概述了主要操作。

rloginrcp 相比,ftp 的主要优点在于 ftp 不要求远程系统运行 UNIX。不过,远程系统却需要进行 TCP/IP 通信配置。但是,与 ftp 相比,rlogin 提供使用的文件处理命令更丰富。

远程登录验证 (ftp)

通过以下方法之一,可以建立 ftp 远程登录操作验证:

基本 ftp 命令

表 29–3 基本 ftp 命令

命令 

说明 

ftp

访问 ftp 命令解释程序。

ftp remote-system

建立与远程系统的 ftp 连接。有关说明,请参见如何打开与远程系统的 ftp 连接

open

从命令解释程序登录到远程系统。 

close

从远程系统注销并返回到命令解释程序。 

bye

退出 ftp 命令解释程序。

help

列出所有 ftp 命令;或者如果提供了命令名称,则简要说明该命令所执行的操作。

reset

使命令-回复序列与远程 ftp 服务器再次同步。

ls

列出远程工作目录的内容。 

pwd

显示远程工作目录的名称。 

cd

更改远程工作目录。 

lcd

更改本地工作目录。 

mkdir

在远程系统上创建目录。 

rmdir

删除远程系统上的目录。 

get, mget

将远程工作目录中的某个文件(或多个文件)复制到本地工作目录。 

put, mput

将本地工作目录中的某个文件(或多个文件)复制到远程工作目录。 

delete, mdelete

删除远程工作目录中的某个文件(或多个文件)。 

有关更多信息,请参见 ftp(1)

Procedure如何打开与远程系统的 ftp 连接

  1. 确保您具有 ftp 验证。

    您必须具有 ftp 验证,如远程登录验证 (ftp) 中所述。

  2. 使用 ftp 命令打开与远程系统的连接。


    $ ftp remote-system
    

    如果连接成功,则会显示确认消息和提示。

  3. 键入用户名。


    Name (remote-system:user-name): user-name
    
  4. 如有提示,请键入口令。


    331 Password required for user-name:
    
    Password: password
    

    如果要访问的系统已建立了匿名 ftp 帐户,将会提示您输入电子邮件地址作为口令。如果 ftp 接口接受您的口令,则它会显示确认消息和 (ftp>) 提示符。

    您现在可使用 ftp 接口提供的任何命令,包括 help。表 29–3 概述了主要命令。


示例 29–5 打开与远程系统的 ftp 连接

ftp 会话由远程系统 pluto 中的用户 smith 建立:


$ ftp pluto

Connected to pluto.

220 pluto FTP server ready.

Name (pluto:smith): smith

331 Password required for smith:

Password: password

230 User smith logged in.

ftp>

如何关闭与远程系统的 ftp 连接

使用 bye 命令关闭与远程系统的 ftp 连接。


ftp> bye

221-You have  transferred 0 bytes in 0 files.

221-Total traffic for this sessions was 172 bytes in 0 transfers.

221-Thanks you for using the FTP service on spdev.

221 Goodbye.

此时将显示再见消息,随后会出现常规 shell 提示符。

Procedure如何从远程系统复制文件 (ftp)

  1. 转至要将远程系统中的文件复制到其中的本地系统目录。


    $ cd target-directory
    
  2. 建立 ftp 连接。

    请参见如何打开与远程系统的 ftp 连接

  3. 转至源目录。


    ftp> cd source-directory
    

    如果系统正在使用自动挂载程序,则远程系统用户的起始目录可能与 /home 中您的起始目录并行。

  4. 确保您对源文件具有读取权限。


    ftp> ls -l
    
  5. 将传送类型设置为 binary


    ftp> binary
    
  6. 要复制单个文件,请使用 get 命令。


    ftp> get filename 
    
  7. 要一次复制多个文件,请使用 mget 命令。


    ftp> mget filename [filename ...]

    您可提供一系列单个文件名,也可使用通配字符。mget 命令会分别复制每个文件,并且每次都要求您进行确认。

  8. 关闭 ftp 连接。


    ftp> bye
    

示例 29–6 从远程系统复制文件 (ftp)

在此示例中,用户 kryten 将打开与系统 plutoftp 连接,并使用 get 命令来复制 /tmp 目录中的单个文件。


$ cd $HOME

ftp pluto

Connected to pluto.

220 pluto FTP server (SunOS 5.8) ready.

Name (pluto:kryten): kryten

331 Password required for kryten.

Password: xxx

230 User kryten logged in.

ftp> cd /tmp

250 CWD command successful.

ftp> ls

200 PORT command successful.

150 ASCII data connection for /bin/ls (129.152.221.238,34344) 

(0 bytes).

dtdbcache_:0

filea

files

ps_data

speckeysd.lock

226 ASCII Transfer complete.

53 bytes received in 0.022 seconds (2.39 Kbytes/s)

ftp> get filea

200 PORT command successful.

150 ASCII data connection for filea (129.152.221.238,34331) 

(0 bytes).

221 Goodbye.

在此示例中,同一用户 kryten 使用 mget 命令将 /tmp 目录中的一组文件复制到其起始目录。请注意,kryten 可以接受或拒绝该文件组中的个别文件。


$ ftp> cd /tmp

250 CWD command successful.

ftp> ls files

200 PORT command successful.

150 ASCII data connection for /bin/ls (129.152.221.238,34345) 

(0 bytes).

fileb

filec

filed

remote: files

21 bytes received in 0.015 seconds (1.36 Kbytes/s)

ftp> cd files

250 CWD command successful.

ftp> mget file*

mget fileb? y

200 PORT command successful.

150 ASCII data connection for fileb (129.152.221.238,34347) 

(0 bytes).

226 ASCII Transfer complete.

mget filec? y

200 PORT command successful.

150 ASCII data connection for filec (129.152.221.238,34348) 

(0 bytes).

226 ASCII Transfer complete.

mget filed? y

200 PORT command successful.

150 ASCII data connection for filed (129.152.221.238,34351) 

(0 bytes).

226 ASCII Transfer complete.200 PORT command successful.

ftp> bye

221 Goodbye.

Procedure如何将文件复制到远程系统 (ftp)

  1. 转至本地系统上的源目录。

    您键入 ftp 命令的目录是本地工作目录,也即此操作的源目录。

  2. 建立 ftp 连接。

    请参见如何打开与远程系统的 ftp 连接

  3. 转至目标目录。


    ftp> cd target-directory
    

    请记住,如果系统正在使用自动挂载程序,则远程系统用户的起始目录可能与 /home 中您的起始目录并行。

  4. 确保您对目标目录具有写入权限。


    ftp> ls -l target-directory
    
  5. 将传送类型设置为 binary。


    ftp> binary
    
  6. 要复制单个文件,请使用 put 命令。


    ftp> put filename
    
  7. 要一次复制多个文件,请使用 mput 命令。


    ftp> mput filename [filename ...]

    您可提供一系列单个文件名,也可使用通配字符。mput 命令会分别复制每个文件,并且每次都要求您进行确认。

  8. 要关闭 ftp 连接,请键入 bye


    ftp> bye
    

示例 29–7 将文件复制到远程系统 (ftp)

在此示例中,用户 kryten 将打开与系统 plutoftp 连接,并使用 put 命令将其系统中的文件复制到系统 pluto 上的 /tmp 目录。


$ cd /tmp

ftp pluto

Connected to pluto.

220 pluto FTP server (SunOS 5.8) ready.

Name (pluto:kryten): kryten

331 Password required for kryten.

Password: xxx

230 User kryten logged in.

ftp> cd /tmp

250 CWD command successful.

ftp> put filef

200 PORT command successful.

150 ASCII data connection for filef (129.152.221.238,34356).

226 Transfer complete.

ftp> ls

200 PORT command successful.

150 ASCII data connection for /bin/ls (129.152.221.238,34357) (0 bytes).

dtdbcache_:0

filea

filef

files

ps_data

speckeysd.lock

226 ASCII Transfer complete.

60 bytes received in 0.058 seconds (1.01 Kbytes/s)

ftp> bye

221 Goodbye.

在此示例中,同一用户 kryten 使用 mput 命令将其起始目录中的一组文件复制到 pluto/tmp 目录。请注意,kryten 可以接受或拒绝该文件组中的个别文件。


$ cd $HOME/testdir

$ ls

test1   test2   test3

$ ftp pluto

Connected to pluto.

220 pluto FTP server (SunOS 5.8) ready.

Name (pluto:kryten): kryten

331 Password required for kryten.

Password: xxx

230 User kryten logged in.

ftp> cd /tmp

250 CWD command successful.

ftp> mput test*

mput test1? y

200 PORT command successful.

150 ASCII data connection for test1 (129.152.221.238,34365).

226 Transfer complete.

mput test2? y

200 PORT command successful.

150 ASCII data connection for test2 (129.152.221.238,34366).

226 Transfer complete.

mput test3? y

200 PORT command successful.

150 ASCII data connection for filef (129.152.221.238,34356).

226 Transfer complete.

ftp> bye

221 Goodbye.