Basic FTP Execution

To run FTP on any LC machine, type

ftp [remotehost]

where remotehost is either the IP address or the domain name of the computer with which you want to exchange files. The machine on which you run FTP is the "client" or "local" machine, and the machine whose address or name you specify on the execute line is the "server" or "remote" machine (for purposes of describing commands and file transfers below). If run with no remotehost, FTP prompts for input (and you will need to use its interactive open command to specify a target host).

You must log in to your local machine to run FTP, and you must also log in to the specified remote machine at the start of each FTP file-transfer session (when you are prompted for your remote username and password, which might be different from the local ones). FTP expects file transfers to be done by a series of interactive commands, and it does not allow "third-party" transfers (between two remote machines). On LC production machines, Hopper serves as a graphical controller for FTP.

Firewall Alert

LC uses its hardware/software security firewall to block direct FTP connections from machines outside the domain to LC machines within Offsite users must either log on to an production machine, execute FTP there, and then draw external files toward them (with the get option), or log in to the Lab's Virtual Private Network (VPN) before beginning an FTP session. For more information, see the Access Information section of LC's Computing Web pages.

Parallel, Nonparallel Clients

On all LC production machines, open and secure (but not necessarily on LC's other machines), a parallel FTP client (PFTP) is the default. Parallel file transfers occur automatically when they are possible. But the extra verbosity of the parallel client might sometimes pose problems (e.g., for scripts). To overtly invoke a "standard," nonparallel FTP client, either type the special execute line

ftp.bsd [remotehost]

or else set the environment variable OLD_FTP_CLIENT to any nonnull value. For example:


and then use the regular execute line shown at the start of this section. (Unless you include this setting in your login file, FTP will revert to the parallel default client with every new login session.)

Secure FTP (SFTP)

For information on how executing the specialized secure FTP (SFTP) client differs from running standard FTP, consult the SFTP section.

Transferring Archive TAR Files

Suppose you want to bundle a set of files (perhaps including directory trees) and transfer the resulting archive to another LC machine, but you lack enough disk space to run TAR locally and thus double your disk usage on the client machine before you invoke FTP for the transfer. LC's special HTAR utility offers a -f option with which you can open a parallel connection to any preauthenticated LC FTP server and transfer files directly into an archive (TAR file) created and filled only on the remote (receiving) machine. Extractions from, and even indexing of, remote nonstorage archives are also supported.

See the HTAR Reference Manual for details and annotated examples.

FTP Differences for HPSS Access

One common use for FTP on LC machines is to put files into or get files from archival storage (HPSS,, but not all FTP clients interact equally well with HPSS. If you work on LC Linux/CHAOS systems, you have access to /usr/kerberos/bin/ftp, but you should instead run /usr/local/bin/ftp (on Toss 2) and /usr/tce/bin/ftp (on Toss 3) to reach storage. Under some conditions, the former (but not the latter) client refuses to log you into HPSS or needlessly asks you to "please log in with USER and PASS."