System Administration Guide, Volume 2

Logging In to a Remote System (ftp)

The ftp command opens the user interface to the Internet's File Transfer Protocol. This user interface, called the command interpreter, enables you to log in to a remote system and perform a variety of operations with its file system. The principal operations are summarized in the table below.

The main benefit of ftp over rlogin and rcp is that ftp does not require the remote system to be running UNIX. (The remote system does, however, need to be configured for TCP/IP communications.) On the other hand, rlogin provides access to a richer set of file manipulation commands than ftp does.

Authentication for Remote Logins (ftp)

Authentication for ftp remote login operations can be established either by:

Essential ftp Commands

Table 10-2 Essential ftp Commands

Command 

Description 

ftp

Accesses the ftp command interpreter

ftp remote-system

Establishes an ftp connection to a remote system. For instructions, see "How to Open an ftp Connection to a Remote System"

open

Logs in to the remote system from the command interpreter 

close

Logs out of the remote system and returns to the command interpreter 

bye

Quits the ftp command interpreter

help

Lists all ftp commands or, if a command name is supplied, briefly describes what the command does

reset

Re-synchronizes the command-reply sequencing with the remote ftp server

ls

Lists the contents of the remote working directory 

pwd

Displays the name of the remote working directory 

cd

Changes the remote working directory 

lcd

Changes the local working directory 

mkdir

Creates a directory on the remote system 

rmdir

Deletes a directory on the remote system 

get, mget

Copies a file (or multiple files) from the remote working directory to the local working directory 

put, mput

Copies a file (or multiple files) from the local working directory to the remote working directory 

delete, mdelete

Deletes a file (or multiple files) from the remote working directory 

For more information, see ftp(1).

How to Open an ftp Connection to a Remote System

  1. Make sure you have ftp authentication.

    You must have ftp authentication, as described in "Authentication for Remote Logins (ftp)".

  2. Open a connection to a remote system by using the ftp command.


    $ ftp remote-system
    

    If the connection succeeds, a confirmation message and prompt is displayed.

  3. Enter your user name.


    Name (remote-system:user-name): user-name
    
  4. If prompted, enter your password.


    331 Password required for user-name:
    Password: password
    

    If the system you are accessing has established an anonymous ftp account, you will not be prompted for a password. If the ftp interface accepts your password, it displays a confirmation message and the (ftp>) prompt.

    You can now use any of the commands supplied by the ftp interface, including help. The principal commands are summarized in Table 10-2.

Example--Opening an ftp Connection to a Remote System

This ftp session was established by the user smith on the remote system pluto:


$ ftp pluto
Connected to pluto.
220 pluto FTP server (SunOS 5.8) ready.
Name (pluto:smith): smith
331 Password required for smith:
Password: password
230 User smith logged in.
ftp>

How to Close an ftp Connection to a Remote System

Close an ftp connection to a remote system by using the bye command.


ftp> bye
221 Goodbye.
earth%

A good-bye message appears, followed by your usual shell prompt.

How to Copy Files From a Remote System (ftp)

  1. Change to a directory on the local system where you want the files from the remote system to be copied.


    $ cd target-directory
    
  2. Establish an ftp connection.

    See "How to Open an ftp Connection to a Remote System".

  3. Change to the source directory.


    ftp> cd source-directory
    

    If your system is using the automounter, the home directory of the remote system's user appears parallel to yours, under /home.

  4. Make sure you have read permission for the source files.


    ftp> ls -l
    
  5. To copy a single file, use the get command.


    ftp> get filename 
    
  6. To copy multiple files at once, use the mget command.


    ftp> mget filename [filename ...]

    You can supply a series of individual file names and you can use wildcard characters. The mget command will copy each file individually, asking you for confirmation each time.

  7. Close the ftp connections.


    ftp> bye
    

Examples--Copying Files From a Remote System (ftp)

In this example, the user kryten opens an ftp connection to the system pluto, and uses the get command to copy a single file from the /tmp directory:


$ 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).
226 ASCII Transfer complete.
ftp> bye
221 Goodbye.

In this example, the same user kryten uses the mget command to copy a set of files from the /tmp directory to his home directory. Note that kryten can accept or reject individual files in the set.


$ 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
226 ASCII Transfer complete.
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.

How to Copy Files to a Remote System (ftp)

  1. Change to the source directory on the local system.

    The directory from which you enter the ftp command will be the local working directory, and thus the source directory for this operation.

  2. Establish an ftp connection.

    See "How to Open an ftp Connection to a Remote System".

  3. Change to the target directory.


    ftp> cd target-directory
    

    Remember, if your system is using the automounter, the home directory of the remote system's user appears parallel to yours, under /home.

  4. Make sure you have write permission to the target directory.


    ftp> ls -l target-directory
    
  5. To copy a single file, use the put command.


    ftp> put filename
    
  6. To copy multiple files at once, use the mput command.


    ftp> mput filename [filename ...]

    You can supply a series of individual file names and you can use wildcard characters. The mput command will copy each file individually, asking you for confirmation each time.

  7. To close the ftp connection, type bye.


    ftp> bye
    

Examples--Copying Files to a Remote System (ftp)

In this example, the user kryten opens an ftp connection to the system pluto, and uses the put command to copy a file from his system to the /tmp directory on system pluto:


$ 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.

In this example, the same user kryten uses the mput command to copy a set of files from his home directory to pluto's /tmp directory. Note that kryten can accept or reject individual files in the set.


$ 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.