ftptool - A windowed interface to ftp.
SYNOPSIS
ftptool
[
generic-tool-arguments
]
[
filename.tar
]
DESCRIPTION
Ftptool is a (hopefully) easier interface to ftp. It hides the interaction with
ftp and the need for knowing commands like 'get' and 'put', and the difference
between 'get' and 'mget'. It provides the ability to transfer directories,
which ftp by itself does not do, and has an extended form of ftp's .netrc file.
OPTIONS
- generic-tool-arguments
-
ftptool (should) accept the generic tool arguments described in xview(1).
- filename.tar
-
The argument is a tar file (extension .tar). Instead of starting up as ftptool,
start up to examine the tar file. This is a simple tool to list the contents
of the tar file, and extract into a specified directory. Provided in this
manner to avoid a proliferation of programs.
USAGE
.Xdefaults File Options
You can specify a number of defaults using the .Xdefaults file. These can all
be set using the Properties window (options affecting window placement or
visibility are currently set depending on the current window configuration).
Other than those controlling the size and placement of the windows, the
options are, with the first value being the default:
ftptool.AutoConnect (False/True)
ftptool.AutoShowStatus (False/True)
ftptool.BatchWindowVisible (False/True)
ftptool.ConfirmDeletes (True/False)
ftptool.ConfirmOverWrites (False/True)
ftptool.DefaultViewer (textedit %f)
ftptool.DirectoryCacheSize (5 {0 - 20})
ftptool.GenUniqueLocalNames (False/True)
ftptool.GenUniqueRemoteNames (False/True)
ftptool.HostInfoAdvancedVisible (False/True)
ftptool.HostInfoVisible (False/True)
ftptool.IgnoreCase (False/True)
ftptool.InitialPassword (login@hostname)
ftptool.KeepConnectionAlive (False/True)
ftptool.LocalShowHiddenFiles (False/True)
ftptool.LocalSortField (Name/Date/Size)
ftptool.LocalSortGrouping (False/True)
ftptool.LocalSortOrder (0/1) {Alphabetical}
ftptool.LocalWindowVisible (False/True)
ftptool.LogSession (False/True)
ftptool.OpenLookMode (True/False)
ftptool.ShowHiddenFiles (False/True)
ftptool.SortField (Name/Date/Size)
ftptool.SortGrouping (False/True)
ftptool.SortOrder (0/1) {Alphabetical}
ftptool.TryProxy (False/True)
When saving defaults, ftptool now saves them in .ftptooldefaults in your
home directory (overwriting the existing information).
Batch mode
Ftptool has a batch mode. Instead of selecting files in a directory, then having
to transfer all those files before leaving the directory, selections will
be saved in either a Send or Receive list. When you finally decide to copy
the files, they will all be copied at once (and they can be in different
directories). The hierarchy on the source machine is duplicated starting
at the current directory on the destination machine. For example, if you
have these files in your Batch Receive list:
/export/source/BSD
/usr/source/Games/NetHack3.10.tar.Z
/pub/gnu/gcc.tar.Z
If your current local directory is /var/tmp, copying these to the local
machine will create the files:
/var/tmp/export/source/BSD
/var/tmp/usr/source/Games/NetHack3.10.tar.Z
/var/tmp/pub/gnu/gcc.tar.Z
(and any other directories and files that are in a selected directory.
Directories are recursively copied, as always). When this occurs is determined
by the Batch window.
The Remote Window
This is where you usually interact with ftptool. It operates from the various
buttons described below.
File Menu
-
- Copy
-
Copy selected files and/or directories from the local machine to the remote
machine, or from the remote machine to the local machine.
- Delete
-
Delete selected files from the local machine, or the remote machine.
- List Directory
-
List the current remote directory in the Session Log window. There are
two options, DIR and LS. They do the corresponding ftp commands. DIR can
be used to determine the output format of the host, so you can set the
DIR template appropriately.
- Compress File
-
Compress the selected local files.
- Uncompress File
-
Uncompress the selected local files.
- Create Tar File
-
Create a tar file containing the selected local files.
- Extract Tar File
-
Extract the selected tar files. This starts the 'tar viewer' for each file,
which by default is ftptool.
View Menu
-
- Remote File
-
Transfer the remote file to a temporary directory, uncompress if necessary,
then start the appropriate file viewer on the file. This will be the tar
viewer if the file ends in .tar, pageview if it is a PostScript file, or
the default viewer (textedit) otherwise. This will vary if you modify
the extensions ftptool understands in the property window.
- Local File
-
Uncompress if necessary, then start the appropriate file viewer on the file.
This will be the tar viewer if the file ends in .tar, pageview if it is a
PostScript file, or the default viewer (textedit) otherwise. This will
vary if you modify the extensions ftptool understands in the property window.
- Local Directory List
-
Show the local directory window.
- Session Log
-
Show the session log window. Only active if logging is enabled.
- Host Information
-
Show the host information window.
- Transfer Status
-
Show the transfer status window.
- Batch Schedule
-
Show the Batch Schedule window
- About Ftptool
-
Show the About window.
Properties Menu
-
- Tool Properties
-
Bring up the tool properties window. See the Properties section.
- Local File
-
Show the local file properties window. This shows such elements as
permissions, owner, and group for the last selected file.
- Remote File
-
Show the remote file properties window. This shows such elements as
permissions, owner, and group for the last selected file. If connected
to a non-UNIX machine, or one that has non-ls style 'dir' command output,
most fields will be "unknown".
- Save Layout
-
Save the layout of ftptool. This includes the sizes of the windows, and
whether some of them are visibile. The layout is now saved in the
file .ftptooldefaults in your home directory.
- Connect Button
-
Try to connect to the host listed in the Host Information window. If
that window is not displayed, it will be displayed and a connection
will not be attempted.
- Abort Button
-
Active only during a transfer. Abort the transfer of all the files selected
after the current one completes.
- Remote Directory Field
-
Shows the current remote directory. This field is also editable, so you can
type in a directory and press return to change to it. Changing directories
in this way forces ftptool to re-read the remote directory (even if
it is cached). A quick way to do this for the current directory is to
press Return in this field.
- Remote Directory List
-
List of remote files in the current remote directory. Directories are
in bold, with a trailing '/'. You can double-click on a directory to change
to it, or use the pop-up menu. Sorting is controlled by properties. Several
useful functions are in the pop-up menu.
Host Information Window
- New Connection
-
Selecting this button clears the fields in the window. This would be selected
if you wish to connect to a new site. It does not try to connect.
- Hosts
-
This is a menu of the hosts in your host list. Selecting a host fills in
the information below. In addition, if auto-connect is set, it will try
to connect to the host.
- Host List
-
-
- Save
-
Save the current host list. It will attempt to save to a file named .ftptoolrc
in your home directory. If that fails, it goes to the current directory.
- Load
-
Load the current host list. It will attempt to load from a file named .ftptoolrc
in your home directory. If that fails, it looks in your current directory.
- Append .netrc
-
When ftptool is first started, it automatically reads the .ftptoolrc file.
If that is not found, it will look for a .netrc file and load from that using
a (very) basic method. If you already have a .ftptoolrc, and want to load
the .netrc too, use this option (this is primarily for earlier versions that
did not read the .netrc).
Add
Add the current information into the list, based on the name in
the Alias field.
- Change
-
This is the same as Add, but it will not ask for confirmation if the
alias already exists.
- Delete
-
Delete the alias named by the Alias field from the list.
- The Plus Button
-
When pressed, show the more advanced options of ftptool. There is
a companion Minus button which will hide those options.
- Alias
-
The alias name. When .netrc entries are loaded, they appear as 'machine login'.
- Last Visited
-
The last time you successfully connected to the host described by this alias.
If you have never connected, then "Never" is displayed. When ftptool updates
this field, the host alias list is marked as modified. It is not automatically
saved for you at this point. This field is only updated if you connect through
the host list, and not the current host window.
Comment
A comment describing this ftp sit (X sources, GNU software).
- Proxy Host
-
The name of the host supporting proxy ftp. ftptool handles this the
way the Iftp program does (which is part of some consulting special).
- Remote Host
-
The name of the remote host.
- Login
-
The login name to use on the remote host.
- Password
-
The password to give on the remote host. Characters in your password will
be displayed as '*'. In the .ftptoolrc file, this field will be encrypted.
WARNING: The encryption algorithm is fairly simple, and made even more
breakable since ftptool source is freely available. Encrypting the password
allows you to look at it without divulging your passwords, but is not
unbreakable. For this reason, the .ftptoolrc file is mode 600.
- Account
-
The account to give when logging in to the remote
host. This is not usually needed. Pressing return
in this field will automatically attempt to connect.
If this field is empty, an account will not be
passed.
- Remote host runs
-
Indicates which type of operating system the
remote system runs, so ftptool knows how to
interpret the output of directory listings.
Most UNIX systems should use UNIX, and VMS
systems should use VMS. If ftptool is confused
by the directory listing, it will just list
the filenames (and you will lose all type
and permission information). If this occurs,
you can choose Other, and specify the pattern
that ftptool should look for.
- Transfer Mode
-
The mode of transfer to use on the remote host. Before any transfer, this
is read, so you can change it as you work.
- Remote Directory
-
The remote directory to change to upon connection. Perhaps you always want to
go to /pub/gnu on prep.ai.mit.edu.
- Local Directory
-
The local directory to change to upon connection. Perhaps you always want to
go to /home/gnu when connecting to prep.ai.mit.edu.
- DIR Template
-
Since ftptool can not know the format the 'dir' command (which is used to
fill the remote list) displays on each host, you can tell ftptool the
format on a per-host basis. ftptool uses a default format, so unless
you have problems, you probably should leave it alone. If you need to
determine the format, either connect using normal ftp, or connect with
ftptool and use 'dir' in the Custom field. This will display in the session
window, so make sure you are logging.
The template is a series of keywords separated by whitespace or characters
that must match (so if there are dashes in the date, you theoretically
give MONTH-DAY-YEAR). The keywords are:
PERMS - Normal UNIX permissions (drwxrwxrwx)
LINKS - Link count. Currently matched, but discarded.
USER - User name/number
GROUP - Group name/number
SIZE - File size
MONTH - Month (Dec, Jan, ...)
DAY - Day of week (number)
TIME - Hour:minute (09:49) or year (1991)
NAME - Filename.
SKIP - Discard characters until the next whitespace.
Anything else must be matched exactly. The default is given in ftptool.h
as:
PERMS LINKS USER GROUP SIZE MONTH DAY TIME NAME
which matches the 'ls -lg' output:
-rw-r--r-- 1 mike_s develop 8636 Dec 20 09:49 transfer.o
A special case is the pattern NONUNIX. If this is present anywhere
in the template, it sets non-UNIX mode. Ftptool will only use 'ls' to
get directory listings, and will not expand environment variables
when trying to cd with the Remote Directory text field.
Also, ftptool will assume that all directory entries are normal files.
You can still attempt to double-click on the files to cd, though.
Another special case is the pattern LOWERNAMES. This causes all file
names read from the remote machine to be converted to lowercase. This
is for those machines that output data in uppercase, but can't handle
it in return (such as VMS).
Local Directory Window
- Local Directory Field
-
Shows the current local directory. This field is also editable, so you can
type in a directory and press return to change to it.
- Free Space
-
Gives the amount and percentage of free space available in the file system
the directory is in.
- Local Directory List
-
List of local files in the current local directory. Directories are
in bold, with a trailing '/'. You can double-click on a directory to change
to it, or use the pop-up menu. Sorting is controlled by properties. Several
useful functions are in the pop-up menu.
Session Log Window
Shows all data sent to ftp, as well as all responses from ftp. This is
primarily for debugging, but is also useful if the remote machine shows
a message of the day.
Transfer Status Window
This shows you how far along each file transfer is. It shows the name
and transfer direction, the size, and a gauge showing the percent complete.
It updates every 8K block transferred.
Batch Schedule Window
This allows you to perform batch transfers. The Batch Send list
shows all the files pending transfer from the local host to the remote host,
and the Batch Receive list shows all the files pending transfer from the remote
host to the local one. Only one list is shown at a time, based on the
setting of the Action item. Addition to a list is performed by selecting the
files (or directories) in either the Remote Window (for the Receive list) or
the Local Window (for the Send list), then selecting the 'Add to Batch List'
option on the list pop-up. Deletion or starting the batch transfer is
accomplished in the list pop-up. To schedule a batch transfer, construct
a list, and use Set Current to create the appropriate batch name. Then,
set appropriate parameters on the Host Information window (such as the
remote and local directories). Also, set the time for the transfer. You
can do this for multiple hosts, but nothing will happen until you choose
the Process Batch item. At that point, the batch list will be processed.
Make sure that you bring up the session log before you start or you will
not have a log.
About Ftptool Window
Shows information about Ftptool. Who I am, why it was written, and a few
credits. Also allows you to send feedback to me.
Properties
In addition to the properties listed below, applying your properties will
also save the current state of your pop-up windows (visible or non-visible).
At this time, location is not saved.
- Ftptool options
-
-
- FTP options
-
The Log Session option causes ftptool to display the Session Log, and
to actually write to it. The Keep Connection Alive option is not part of ftp,
but by choosing it ftptool will send a command every 10 minutes so that the
remote server does not time out and disconnect (which it does after 15
minutes of inactivity).
- Generate unique
-
The Local Filenames options cause ftptool to generate unique local
filenames of the form N.filename, where N is a number, if filename
already exists on the local machine. The Remote Filenames option
causes ftptool to use the Store Unique FTP command when sending
files, to make the remote server generate unique filenames if filename
exists.
- Automatically
-
The Connect option causes ftptool to immediately try to connect
to the host selected from the Hosts menu. The Show Status option forces
the Transfer Status window to be displayed when beginning a transfer.
The Try Sun Proxy FTP option causes ftptool to automatically try to
use Sun's proxy FTP (from Sun Consulting) if it cannot resolve the
hostname (the host is unknown) or it receives a 'Network unreachable'
error when connecting. This is primarily used by Sun folks trying
to get out to the Internet.
- Window manager
-
If selected, ftptool assumes it is running under an OPEN LOOK Window Manager,
and does not provide a Quit button. Also, Viewing a window that is
already displayed will cause it to be hidden.
- Initial Password
-
The initial password to use, primarily for anonymous ftp.
- Case sensitivity
-
Controls whether or not to respect the case of characters when
sorting the Hosts menu and the directory lists.
- Confirm
-
The deletions button controls whether or not to request confirmation
when deleting files. If you delete directories with this on, it will ask
for each file in the directory. The overwrites button causes ftptool
to ask for confirmation when receiving a file would overwrite an existing
file. If you decide not to overwrite, the entire transfer is aborted.
- Directory List options
-
-
- Unlimit Cache Size
-
This option causes ftptool to cache _all_ directories. It could be quite
a memory waster.
- Directory Cache Size
-
Determines how many directory listings ftptool will remember. This is managed
as an LRU cache, so every time you CD into a directory ftptool first looks in
the cache. If it finds it, then instead of actually reading the directory it
just displays the list in the cache. This can speed up directory listings on
slow links. The larger you make the cache, the more memory you will use and
(if you keep listing the same directories) the less likely you'll have to
talk to the remote server. However, the larger the cache, the less likely it
is that you'll see any changes being made on the cached directories. To
effectively not cache at all, set this to 1.
There are two caches, one for local directories and one for remote.
This property controls both (setting it to 2 actually means you'll
cache 4 directories: 2 local and 2 remote).
- Sort remote files by
-
Controls which field in the remote file list to sort by.
You can sort by name, date, size, or type.
- Sort order
-
Controls how to sort the field. For sorting by name: either alphabetical
or reverse alphabetical. For sorting by the date: either least recently
changed or most recently changed. For sorting by the size: either smallest
first or largest first. For sorting by type: either alphabetical or
reverse alphabetical (within the types of files).
- Hidden files
-
Controls whether or not to display hidden files (those beginning with a
period).
- Group files by type
-
If set, then files are grouped by types (directories first, then regular
files, ...) in addition to being sorted as normal.
- Sort local files by
-
Controls which field in the local file list to sort by.
You can sort by name, date, size, or type.
- Sort order
-
Controls how to sort the field. For sorting by name: either alphabetical
or reverse alphabetical. For sorting by the date: either least recently
changed or most recently changed. For sorting by the size: either smallest
first or largest first. For sorting by type: either alphabetical or
reverse alphabetical (within the types of files).
- Hidden files
-
Controls whether or not to display hidden files (those beginning with a
period).
- Group files by type
-
If set, then files are grouped by types (directories first, then regular
files, ...) in addition to being sorted as normal.
- Viewer options
-
-
- Default file viewer
-
The default viewer for files of unknown (usually text) type. This is a
command line, which will be broken up into arguments. '%f' will be
replaced by the file name to view; if not specified, the file name will
be passed as the last argument.
- Known extensions
-
A scrolling list of extensions known to ftptool. Selecting one fills
in the fields below. The Add, Delete, and Change buttons work based
on the Extension field below.
- Extension
-
The extension ftptool will look for when examining file types. This
is the key used to index the entry, so usually you fill this (and the
following information) in, then select Add. If that extension already
exists, it will ask if you really want to replace it (Change will not
ask). Delete also operates on this field. Note that you are actually
specifying the last N characters of the filename, so you must include
the period if it should be there (I think this is more flexible than
inserting a period for you). Ftptool preloads pageview for PostScript
files and tar for tarfiles (or, if you specified others for the older
properties, it should load those first).
- Contents begin with
-
This specifies the first N characters of the file. When Viewing a
file, ftptool determines the type both by the extension and the contents
of this field. If there is a discrepency (the file is X.GIF but is
actually a Raster file), ftptool uses the program associated with
the Contents (this field overrides the extension). If you leave this
field alone (as an empty line), it is not used.
- Program to run
-
The program to invoke to view the file. This is a command line,
which will be broken up into arguments. '%f' will be replaced by the
file name to view; if not specified, the file name will be passed as the
last argument.
AUTHOR
Mike Sullivan (Mike.Sullivan@Sun.COM)
Markup created by unroff 1.0, September 09, 1998.