This program is for transferring files over ssh. It is intended
for use on high latency links when you don't know the filenames in
advance. (If you know the filenames, use rsync over ssh instead.)
- The program is split into interactive selection phase and a batch
- In the interactive phase, some sanity checking of put and get commands
is done immediately to avoid accidents, but the transfer is
actually queued for later, once the interactive phase is over.
- During the tranfer phase, the user can log off without interrupting the transfer.
The results of the transfer (for each file, a statment of success or an error message)
are returned by mail.
- File attributes are cached so you only have to wait for
a directory list once.
- Double quotes (") and backslash (\) are used for quoting filenames
in a similar style to the Bourne shell.
- The server software does not need to be installed on the remote
system, however, perl 5, ssh and /bin/mail do need to
|ls ||Remote directory list|
|dir ||Remote directory list (long format)|
|cd ||Remote change directory|
|cat ||Remote show file contents|
|lls ||Local directory list|
|ldir ||Local directory list (long format)|
|lcd ||Local change directory|
|lcat ||Local show file contents|
|go ||Run deferred commands immediately|
|exit (or <EOF>) ||Exit the interpreter and run deferred commands (Output is returned via email)|
|get ||Retreive a file from the remote server|
|put ||Store a file on the remote server|
Queue management commands
|show ||Show deferred commands|
|undo ||Remove the most recent deferred command|
|abort ||Clear list of deferred commands|
A typical session involves the following tasks:
- Connect to the server, entering a password/passphrase if required
- Browse the local and remote directory structures using cd, lcd, ls and lls
- Select which files are to be transferred using put and get
- Exit the client to initiate the transfers.
- Wait for an email to arrive when all the transfers have completed.
Install ftclient and ftserver in the same directory. Run ftclient hostname to start a session.
Peter Benie <email@example.com>