Previous Page TOC Index Next Page Home


7

FTP

--by Philip Baczewski

Those Pesky FTP Servers

Anonymous FTP is one of the most useful Internet services, and at the same time it can be one of the most frustrating. Because some anonymous FTP servers are so comprehensive, they are also very popular. As you may have already found out the hard way, sites like wuarchive.wustl.edu often are inaccessible during daylight hours, even though some support as many as 200 simultaneous connections. Even mirror sites are often quite busy, and because the organizational structure may be different, it's not always easy to find your way around. Fortunately, there are several solutions for retrieving files from popular sites, or even obscure ones. The simplest solution is to stay up late to do your FTP sessions. However, for those who do sleep, some other ideas are offered here.


Stupid UNIX FTP Tricks: The following commands, which will work on most UNIX systems, let you enjoy some shortcuts and time-savers during an FTP session:

1. Display text files to the terminal.

It's very handy sometimes to be able to display a short readme file directly to your terminal, rather than downloading it and then invoking a file viewer. The following command will get a file and transfer it to the console rather than to the directory space:

ftp> get readme.txt -

This command is a normal ASCII transfer, but the hyphen represents the console as the file's destination.

2. Browse text files within FTP.

"Ah yes," you say, "but what if I want to examine a longer text file and I don't want it to scroll off my screen?" The following command enables you to pipe a transferred file to the more program, which enables you to page up, page down, and search within the file.

ftp> get readme.txt |more

There is no space between the pipe symbol and more.

3. Browse a directory within FTP.

If you have ever stumbled across a directory with hundreds of entries, you will understand the significance of the following command:

ftp> get . |more

This transfers the listing of the current directory (.) and pipes the output to more. Instead of watching those filenames scroll off your screen for a couple of minutes, you can search the listing for a particular file or scroll the file at your own pace.

Batching It

One method for retrieving files from busy sites (while still getting some sleep) is to make use of the batch, or timed-execution, facility of your host computer system. This is possible on most UNIX and DEC VMS systems, but check with your system administrator (if that's not you) to be sure. The following examples are not necessarily the only or most elegant solutions, but they may give you some ideas to build upon.

Batch FTP on VMS

On VMS, a DCL script can be used to submit and schedule a batch job to accomplish an FTP session. The following example uses a VMS DCL script to invoke FTP and a data file that contains the FTP commands you want to execute. As you can see, it doesn't take many lines to get the job done. This script was created on a system running Wollongong TCP/IP, so a version for your system might vary slightly depending upon the TCP/IP software that's installed.

The following statements should be saved in an executable file named FTP.COM. Comments begin with an exclamation point.

$!FTP.COM - Batch FTP on a VMS System

$!Change to the download directory

$ SET DEFAULT DUA0:[myid.kermit]

$!FTP command input comes from a file in the ftpbat directory

$ DEFINE/USER SYS$INPUT DUA0:[myid.ftpbat]FTP.DAT

$!Set the path to the ftp application

$ ftp :== $twg$tcp:[netapps.user]ftp ftp

$!Invoke the FTP command with a target address

$!This example is the server at Columbia University

$!(ftp.cc.columbia.edu)

$ FTP 128.59.39.2

A typical data file with your FTP commands might be as follows. This file would be named FTP.DAT, as seen in the preceding script example. The QUIET and NOINTER commands turn off verbose messages and suppress prompting, respectively.

anonymous

myid@mynode.edu

CD kermit/b

QUIET

NOINTER

mget ikc*

QUIT

As you can see, the script simply sets the download path, points to the FTP command file, sets a logical variable for the FTP program, and executes a connection. The FTP.COM file can be scheduled for batch execution with a command like the following:

submit/noprint/log=DUA0:[myid.ftpbat]ftp.log/queue=batch/after="21:00" ftp

Because this command is rather long, you could create a .COM file for it as well, using a hyphen as a continuation character to the next line if necessary. The content of such a file might appear as follows:

$submit/noprint/log=DUA0:[myid.ftpbat]ftp.log/queue=batch/after="21:00"-

 ftp

Any output from the FTP session will be stored in the file FTP.LOG, in this case located in the ftpbat directory. The FTP.COM file will be executed after 11:00 p.m. You will probably need to check with your VMS system administrator for the name and availability of a batch queue; however, it is likely that such a facility does exist on your VMS system.

Batch FTP on UNIX

A facility similar to the preceding VMS example is available to you on UNIX when you schedule a shell script to do your FTP commands after business hours. The following example employs a script to initiate the FTP session and another file to hold the actual FTP commands. These two files combine to operate as a batch FTP session on UNIX systems.

#bftp -- Batch FTP script thanks to Amos Gouaux (amos@unt.edu) for

#his loan of this example batch ftp shell script.

#!/bin/sh

set e

case $# in

    1)

        if [ ! f $1 ]

        then

            echo "$0: file \"$1\" not found."

            exit

        fi

        ;;

    *)

        echo 'Usage: bftp site(:ext)'

        echo 'Whereas, "site" is a job file having the same name as the'

        echo 'ftp site and ":ext" is a filename extension that may be'

        echo 'appended to the end of "site".'

        exit

        ;;

esac

touch bftp.log

echo "Processing script \"$1\"." >> bftp.log

ftp dinv << _eof >> bftp.log 2>&1

    open `echo $1 | sed e 's/:.*$//'`

    user anonymous myid@mynode.edu

    `cat $1 | sed e '/^[^az]*\#.*$/d' | sed e 's/\#.*$//'`

    bye

_eof

echo >> bftp.log

The following is an example of a data file for the preceding script. The name of this file should be the same as the fully-qualified domain name of the FTP server you are accessing (in this example, ftp.cc.columbia.edu). Comments can be placed in this data file by prefixing the line with a pound sign (#).

cd kermit/b

#turn off verbose messages

verbose

#turn off prompting

prompt

#get all Amiga C-Kermit files

mget ikc*

QUIT

This script uses the name of the intended FTP site for the name of the file containing the FTP commands you want to execute at that site. This clever bit of programming (I wish I could say it were mine) saves some lines of code and also can help organize and easily identify command files that will be used on a regular basis (for regularly posted software updates, archive files, and so on).

On most UNIX systems, you can schedule this batch FTP script to execute at a specified time by using the at command. (Once again, you may need to check with the system administrator to gain authorization to use the at command.) A typical command might be as follows:

at 11:00pm today bftp ftp.cc.columbia.edu

Check the at man page for all of the options available with this command. If you want to regularly schedule batch FTP sessions, you may want to take advantage of the UNIX cron facility. The usual caveat applies—you may need to check with your system administrator to gain access to cron (and to create a crontab file).

One nice thing about computers is that they can work at hours when you don't. If you are a script-programming guru on either VMS or UNIX, you can probably come up with several enhancements to the preceding offerings. If not, however, these scripts can still be quite useful and may be able to save you some time as well as sleep.

Gopher FTP

Once again, Gopher comes to the rescue. An anonymous FTP interface is a useful addition to the multitude of Internet services and information available through Gopher. Many popular FTP sites provide access through a Gopher interface. Because of the way Gopher operates, it has become the preferred method of access for a number of sites. An anonymous FTP session establishes a static connection to the FTP server, and as long as you are connected to that server, one connection is unavailable to another FTP user. This will matter to you if the server supports 200 connections and you are connection number 201.

Gopher works on a dynamic connection model. An Internet connection is made only while the Gopher client is reading requested information, whether that be a Gopher menu, a file, or an FTP-able software archive file. In other words, while you retrieve an FTP directory you are using a connection, but while you are perusing that directory no load is placed on the remote server. Because of the efficiency of accessing FTP archives through Gopher, it's often possible to gain access through that method when all "traditional" FTP ports are occupied.

Some Gopherable FTP Sites

A check of the University of Minnesota Gopher (gopher.tc.umn.edu) shows a number of familiar names in the "FTP Searches/Popular FTP Sites via Gopher" menu. The following list includes such esteemed names as Boombox, SUMEX, and wuarchive. (When you can go by one name, you know you've hit it big.) More exploration or a Veronica search may also turn up some of your popular sites.

                          Popular FTP Sites via Gopher

      1.  Read Me First

      2.  Boombox  Home of Gopher and POPmail/

      3.  Case Western Reserve University FREENET/

      4.  Indiana University Mac Gopher Client App (beta)/

      5.  Indiana Windows Archive/

      6.  Interest Group Lists/

      7.  Internet Resource Guide (tar.Z files)/

      8.  Latest Disinfectant (ftp.acns.nwu.edu)/

      9.  Lyrics/

      10. NCSA  Home of NCSA Telnet/

      11. National Science Foundation Gopher (STIS)/

      12. Newton Archives at Johns Hopkins University (bnnrcsrv.med.jhu.edu../

      13. OCF Document Archives/

      14. OSSIS Info Archives (slow)/

      15. SUMEXAIM Archives  (Includes InfoMac: a large collection of Mac../

      16. Scholarly Communications Project of Virginia Tech/

      17. Software Archives at MERIT (University of Michigan)/

      18. Sonata NeXT software archive (sonata.cc.purdue.edu)/

      19. Supreme Court Rulings (CWRU)/

      20. UIUCCSO  Home of the qi server (CSO phonebook software)/

      21. University of Utah Mac Gopher Client App (beta)/

      22. Usenet University/

      23. Washington University Archive (wuarchive)/

After you find a Gopher FTP site, you will probably want to add it to your bookmark file. The following might offer you a head start in this regard. Some sample UNIX Gopher bookmarks are provided for some popular sites.

Type=1+

Name=Popular FTP Sites via Gopher

Path=1/FTP Searches/Popular FTP Sites via Gopher

Host=gopher.tc.umn.edu

Port=70

#

Type=1

Name=SUMEXAIM Archives  (Mac software)

Path=

Host=SUMEXAIM.Stanford.EDU

Port=70

#

Type=1

Name=Washington University Archive (SUMEX & other mirror site)

Path=

Host=wuarchive.wustl.edu

Port=70

#

Type=1

Name=OCF (Open Computing Foundation) Document Archives

Path=

Host=ocf.berkeley.edu

Port=70

A Final Word on Gopher FTP

Gopher FTP is not without its limitations. Most archived and ASCII-encoded files will transfer successfully, but executable files may not, depending on the system on which you are using Gopher. Even with a more efficient paradigm, you still might have trouble establishing a connection to some of the more popular sites (in which case, dust off that batch FTP script). On the plus side, however, there are some microcomputer versions of Gopher, like TurboGopher for the Macintosh, that will actually enable you to retrieve and then decode a file all in one operation. The other handy thing about using Gopher as an FTP access method is that you can easily display any text files (like README files, for example) directly to your terminal, eliminating the need to download and view a file as a separate operation.

FTP Through a WWW Browser

Don't forget that if you can access an FTP site through Gopher, you can also use your favorite World Wide Web client to access and download files. If you know the host, a URL (Universal Resource Locator) would look similar to the following:

gopher://any.gopher.host.com/

This URL will connect at the root starting point, and you can then traverse the Gopher structure. Most Gopher installations use port 70 for incoming connections, but some might use an alternate number. You can specify such a different port as follows (using 9999 as an example):

gopher://any.gopher.host.com:9999/

You can also access FTP sites directly using the following URL format:

ftp://any.ftp.host.com/pub/any/directory

or

file://any.ftp.host.com/pub/any/directory

Most Web browsers enable you to view text files directly and automatically download any binary files you select.

The File's in the Mail

There are two main facilities for retrieving files from anonymous FTP sites. BitFTP is maintained by Princeton University as a service for Bitnet (U.S.), NetNorth (Canada), and EARN (Europe) nodes that do not have TCP/IP access to the Internet. FTPMail is an unsupported facility at gatekeeper.dec.com and several other sites on the Internet. FTPMail was written by Paul Vixie. Both facilities enable you to send a mail message containing FTP commands and have any resulting output mailed to you at your return e-mail address. Both are facilities of last resort.

In concept, FTP by e-mail sounds good, but some of the charm is taken away when you realize that a 1MB file sent in pieces will generate at least ten separate incoming mail messages. (Both facilities will break large files into multiple mail messages, and both have a limit of about 100,000 characters per file part.) Those mail messages will have to downloaded, merged back together, and then possibly uudecoded. The following notes on both facilities may make your use of them more efficient. More information on either one can be obtained by sending the command HELP to the FTP server address.

BitFTP

BitFTP can be accessed by sending mail to the address bitftp@pucc.princeton.edu. It is implemented on an IBM mainframe system, so the commands are a subset of IBM's TCP/IP software. This is an advantage if you need FTP access to a specific mainframe on the Internet, but only have electronic mail as a means of communication. BitFTP supports the ACCT command used on VM/CMS systems, and you can specify EBCDIC as a file transfer mode (to transfer text files from mainframe to mainframe). In addition, BitFTP supports the FTP commands CD, DIR, ASCII, BINARY, GET, LS, MODE (block or stream I/O), PWD, QUIT, SYSTEM (to get the name of the FTP host's operating system), TYPE (a mainframe-specific command supporting various transfer modes), and USER.

Some items to remember when using BitFTP are the following:

The following message shows a typical BitFTP log message.

Date:  13Jul94 22:48 EDT

From:  Princeton BITNET FTP Server > INTERNET:BITFTP1@PUCC.PRINCETON.EDU

Subj:  BITFTP Reply

Sender: bitftp1@pucc.princeton.edu

Received: from pucc.Princeton.EDU by dubimg1.compuserve.com

(8.6.4/5.940406sam)

        id WAA26854; Wed, 13 Jul 1994 22:47:23 0400

MessageId: <199407140247.WAA26854@dubimg1.compuserve.com>

Received: from PUCC.PRINCETON.EDU by pucc.Princeton.EDU (IBM VM SMTP V2R2)

   with BSMTP id 8504; Wed, 13 Jul 94 22:47:05 EDT

Received: from PUCC.PRINCETON.EDU (NJE origin VMMAIL@PUCC) by PUCC.PRINCETON.EDU

(LMail V1.1d/1.7f) with BSMTP id 3782; Wed, 13 Jul 1994 22:47:04 0400

Received: by PUCC (Mailer R2.10 ptf008) id 0699; Wed, 13 Jul 94 22:47:03 EDT

Date: Wed, 13 Jul 1994 22:47:02 EDT

From: Princeton BITNET FTP Server <BITFTP1@PUCC.PRINCETON.EDU>

To: XXXXX.XXX@COMPUSERVE.COM

Subject: BITFTP Reply

************************************************************************

* WARNING: Do not download CDIT, which purports to be a utility to    *

* convert an ordinary CDROM drive into a CDRecordable device. It is  *

* a very destructive virus.                                            *

*                                                                      *

* Use the new BITFTP command "HOWTOFTP" to obtain a copy of RFC1635,   *

* "How to Use Anonymous FTP".                                          *

************************************************************************

> ftp ftp.unt.edu uuencode

> user anonymous

>> FTP.UNT.EDU

<<< Connecting to FTP.UNT.EDU 129.120.1.1, port 21

<<< 220 mercury FTP server (SunOS 4.1) ready.

<<< USER (identify yourself to the host):

>> anonymous

>>> USER anonymous

<<< 331 Guest login ok, send ident as password.

<<< Password:

>> XXXXX.XXX%compuserve.com@pucc.Princeton.EDU

>>> PASS ********

<<< 230 Guest login ok, access restrictions apply.

> cd pub/misc

>> CD pub/misc

>>> CWD pub/misc

<<< 250 CWD command successful.

> binary

>> BINARY VARIABLE

>>> TYPE i

<<< 200 Type set to I.

> get quikkwic.exe

>> GET quikkwic.exe QUIKKWIC.EXE.D ( REPLACE

>>> PORT 128,112,129,99,140,55

<<< 200 PORT command successful.

>>> RETR quikkwic.exe

<<< 150 Binary data connection for quikkwic.exe (128.112.129.99,35895)

    (32032 bytes)

<<< .

<<< 226 Binary Transfer complete.

<<< 32032 bytes transferred. Transfer rate 32.75 Kbytes/sec.

>>>> "quikkwic.exe" sent uuencoded.

> quit

>> CLOSE

>>> QUIT

<<< 221 Goodbye.

FTPMail

The primary FTPMail site can be accessed by sending mail to ftpmail@gatekeeper.dec.com. The help file makes it very clear that FTPMail is not a supported service and that it might be unavailable from time to time. FTPMail supports the following FTP commands: CONNECT, ASCII, BINARY, CHDIR, GET, INDEX, LS, and QUIT.

Some other options to keep in mind:

The following is a status message received after an FTPMail request was made.

Date:  14Jul94 07:30 CEST

From:  "ftpmail service on ftpgw1.pa.dec.com" > INTERNET:nobody@pa.dec.com

Subj:  your ftpmail request has been received [test]

Sender: nobody@ftpgw1.pa.dec.com

Received: from ftpgw1.pa.dec.com by dubimg2.compuserve.com

(8.6.4/5.940406sam)

        id BAA12825; Thu, 14 Jul 1994 01:30:12 0400

Received: by ftpgw1.pa.dec.com; id AA13753; Wed, 13 Jul 94 22:30:10 0700

Date: Wed, 13 Jul 94 22:30:10 0700

MessageId: <9407140530.AA13753@ftpgw1.pa.dec.com>

From: "ftpmail service on ftpgw1.pa.dec.com" <nobody@pa.dec.com>

To: XXXXX.XXX@compuserve.com

Subject: your ftpmail request has been received [test]

XComplaintsTo: ftpmailadmin@ftpgw1.pa.dec.com

XServiceAddress: ftpmail@ftpgw1.pa.dec.com

XJobNumber: 774163809.13751

Precedence: bulk

ReplyTo: <nobody@ftpgw1.pa.dec.com>

We processed the following input from your mail message:

connect ftp.unt.edu

chdir pub/misc

binary

uuencode

get quikkwic.exe

quit

We have entered the following request into your job queue as job number 774163809.13751:

        connect ftp.unt.edu anonymous ftpmail/XXXXX.XXX@compuserve.com

        reply XXXXX.XXX@compuserve.com

        chdir pub/misc

        get quikkwic.exe binary uncompressed uuencode

There are 57 jobs ahead of this one in our queue.

You should expect the results to be mailed to you within a day or so.

We try to drain the request queue every 30 minutes, but sometimes it

fills up with enough junk that it takes until midnight (Pacific time)

to clear. Note, however, that since ftpmail sends its files out with

"Precedence: bulk", they receive low priority at mail relay nodes.

Note that the "reply" or "answer" command in your mailer will not work

for this message or any other mail you receive from FTPMAIL. To send

requests to FTPMAIL, send an original mail message, not a reply. As

shown in the header of this message, complaints should be sent to the

ftpmailadmin@ftpgw1.pa.dec.com address rather than to postmaster,

since our postmaster is not responsible for fixing ftpmail problems.

There is no way to delete this request, so be sure that it has failed

before you resubmit it or you will receive multiple copies of anything

you have requested.

There is no way to ask for only certain parts of a file to be sent. If

you receive output from ftpmail that seems to be missing some parts, it

is likely that some mailer between here and there has dropped them. You

can try your request again, but chances are fairly good that if it is

dropped once it will be dropped every time.

There is no way to specify that your request should be tried only during

certain hours of the day. If you need a file from a timerestricted FTP

server, you probably cannot get it via ftpmail.

Ftpmail was written by Paul Vixie while at the DEC Western Research

Laboratory and at the DEC Network Systems Laboratory, from 19891993.

Ftpmail is not a product or service of Digital Equipment Corporation and no

support or warranty is expressed or implied.

   Ftpmail Submission Transcript 

<<< connect ftp.unt.edu

>>> Connect to ftp.unt.edu as anonymous with ftpmail/XXXXX.XXX@compuserve.com

<<< chdir pub/misc

>>> Will chdir to <pub/misc> before I do anything else

<<< binary

>>> Grab files in "binary" mode

<<< uuencode

>>> Mail binaries in "uuencode" format

<<< get quikkwic.exe

>>> get quikkwic.exe binary uncompressed uuencode

<<< quit

>>> Done  rest of message will be ignored

>>> checking security of host `ftp.unt.edu'

>>> host `ftp.unt.edu' has IP addr [129.120.1.1]

>>> host `ftp.unt.edu' is also known as `mercury.unt.edu'

>>> host `ftp.unt.edu' is ok

   End of Ftpmail Transcript 

   Full Mail Header From Request 

From XXXXX.XXX@compuserve.com  Wed Jul 13 22:30:06 1994

Received: by ftpgw1.pa.dec.com; id AA13745; Wed, 13 Jul 94 22:30:06 0700

Received: from pobox1.pa.dec.com by inetgw2.pa.dec.com (5.65/27May94)

        id AA00119; Wed, 13 Jul 94 22:25:21 0700

Received: by pobox1.pa.dec.com; id AA20713; Wed, 13 Jul 94 22:25:19 0700

Received: from dubimg1.compuserve.com by inetgw1.pa.dec.com (5.65/27May94)

        id AA12091; Wed, 13 Jul 94 22:21:54 0700

Received: from localhost by dubimg1.compuserve.com (8.6.4/5.940406sam)

        id BAA06790; Thu, 14 Jul 1994 01:20:38 0400

Date: 14 Jul 94 01:17:11 EDT

From: Philip Baczewski <XXXXX.XXX@compuserve.com>

To: <ftpmail@gatekeeper.dec.com>

Subject: test

MessageId: <940714051711_XXXXX.XXX_HHB453@CompuServe.COM>

   End of Request Mail Header 

The following is the actual log of the FTP session (received in less than "a day or so").

Date:  14Jul94 07:58 CEST

From:  "ftpmail service on ftpgw1.pa.dec.com" > INTERNET:nobody@pa.dec.com

Subj:  results of ftpmail request 774163809.13751 [test]

Sender: nobody@ftpgw1.pa.dec.com

Received: from ftpgw1.pa.dec.com by dubimg1.compuserve.com

(8.6.4/5.940406sam)

        id BAA08542; Thu, 14 Jul 1994 01:57:18 0400

Received: by ftpgw1.pa.dec.com; id AA14641; Wed, 13 Jul 94 22:57:02 0700

Date: Wed, 13 Jul 94 22:57:02 0700

MessageId: <9407140557.AA14641@ftpgw1.pa.dec.com>

From: "ftpmail service on ftpgw1.pa.dec.com" <nobody@pa.dec.com>

To: XXXXX.XXX@compuserve.com

Subject: results of ftpmail request 774163809.13751 [test]

XComplaintsTo: ftpmailadmin@ftpgw1.pa.dec.com

XServiceAddress: ftpmail@ftpgw1.pa.dec.com

XJobNumber: 774163809.13751

Precedence: bulk

ReplyTo: <nobody@ftpgw1.pa.dec.com>

Orig messageid: <940714051711_XXXXX.XXX_HHB453@CompuServe.COM>

Orig subject: test

Orig from: Philip Baczewski <XXXXX.XXX@compuserve.com>

Orig date: 14 Jul 94 01:17:11 EDT

 connecting to ftp.unt.edu...

Connecting to ftp.unt.edu

220 mercury FTP server (SunOS 4.1) ready.

 logging in as user=anonymous password=ftpmail/XXXXX.XXX@compuserve.com

account=...

> USER anonymous

331 Guest login ok, send ident as password.

> PASS <somestring>

230 Guest login ok, access restrictions apply.

> TYPE A

200 Type set to A.

 changing working directory to pub/misc...

> CWD pub/misc

250 CWD command successful.

=== getting 'quikkwic.exe'...

> TYPE I

200 Type set to I.

> PORT 16,1,0,6,16,233

200 PORT command successful.

> RETR quikkwic.exe

150 Binary data connection for quikkwic.exe (16.1.0.6,4329) (32032 bytes).

226 Binary Transfer complete.

 mailing...

XXXXX.XXX@compuserve.com... Connecting to mailgate.compuserve.com (tcp)...

XXXXX.XXX@compuserve.com... Sent

quikkwic.exe (pub/misc@ftp.unt.edu) (1 part, 44160 bytes) sent to

XXXXX.XXX@compuserve.com

> (end of ftpmail session)

Ftpmail was written by Paul Vixie while at the DEC Western Research Laboratory

and at the DEC Network Systems Laboratory, from 19891993. Ftpmail is not a

product or service of Digital Equipment Corporation and no support or warranty is expressed or implied.

NcFTP: An Alternate Unix Client

NcFTP is a variation on the standard FTP client that many Internet users have come to know and love (or loathe, as the case may be). NcFTP is produced by a company named NCEMRSoft, which apparently consists primarily of Mike Gleason (mgleason@cse.unl.edu) and Phil Dietz (pdeitz@cse.unl.edu). The program is freely distributed and accessible through anonymous FTP at cse.unl.edu in the /pub/mgleason directory, but an Archie search may also turn up a distribution site closer to you. Once retrieved, the program can be compiled on most UNIX systems. Silicon Graphics IRIX, AIX, SINIX, Ultrix, NeXT, and Pyramid OSx are listed in the README file as supported with no modifications. Additional instructions are included for SunOS/Solaris, HP-UX, SCO Unix, SCO Xenix, Bull DPX/2, and Sequent's DYNIX.

A list of features will make the frequent FTP user salivate:

After some definitions are made in your NcFTP RC file, the amount of work it takes to accomplish an FTP transfer can be greatly reduced. the following example shows one possible file of this type that sets some customization variables, defines one FTP host, and includes a short macro to be executed after a connection is made.

The following is a typical NcFTP RC file. This file can be named ncftpcr, netrc, .ncftprc, or .netrc. (This last name is also compatible with the standard FTP program.)

#set logfile ~/.ftplog

#set pager "less"

#set progressreports 2

#unset startupmsg

machine ftp.unt.edu

     login anonymous

     password baczewski@unt.edu

     macdef init

          cd /pub/libraries

          dir

(A macro must end with a blank line.)

The utility of these statements is seen in the following listing. After the NCFTP command, only the string unt was specified and NcFTP matched the first host it found in the RC file containing that string. Notice that there was no prompting for username and password. Upon connection, a change was made to the /pub/library directory and a DIR command was performed. A PAGE command was used to view a file, and then the file was transferred to the local machine.

This only scratches the surface of the features of NcFTP, but it is enough to show the utility of this program. After you begin using it, you may never go back to the "old" FTP. For more information on NcFTP, consult the man pages and other documentation files distributed with the software.

The following shows a typical NcFTP session.

~ % ncftp unt

Guest login ok, send ident as password.

Guest login ok, access restrictions apply.

Logged into ftp.unt.edu.

total 351

drwxrxrx  2 0        1             512 Sep 28  1993 .cap

lrwxrwxrwx  1 0        1              13 Sep 28  1993 libraries.adr > libraries.txt

rrr  1 0        1            1858 Jan  1  1994 libraries.africa

rrr  1 0        1          183584 Jan  1  1994 libraries.americas

rrr  1 0        1           20360 Jan  1  1994 libraries.asia

lrwxrwxrwx  1 0        1              13 Sep 28  1993 libraries.con > libraries.txt

lrwxrwxrwx  1 0        1              13 Sep 28  1993 libraries.contacts > libraries.txt

rrr  1 0        1           89109 Jan  1  1994 libraries.europe

rrr  1 0        1           39063 Aug 12  1993 libraries.instructions

rrr  1 0        1            2884 Aug 11  1993 libraries.intro

lrwxrwxrwx  1 0        1              13 Sep 28  1993 libraries.ps > libraries.txt

lrwxrwxrwx  1 0        1              13 Sep 28  1993 libraries.tx2 > libraries

.txt

rrr  1 0        1             795 Sep 27  1993 libraries.txt

Tip: You can use World Wide Web style paths instead of colonmode paths.

     For example, if the colonmode path was 'cse.unl.edu:pub/mgleason/ncftp',

     the WWWstyle path would be 'ftp://cse.unl.edu/pub/mgleason/ncftp'.

ftp.unt.edu:/pub/library

ncftp>page libraries.txt

The document you tried to retrieve has gone under many changes. Please

read the following:

The Gopher links are located at the following equivalent sites:

Name=Internetaccessible library catalogs

Type=1

Host=yaleinfo.yale.edu

Port=7000

Path=1/Libraries

Or:

Host=gopher.utdallas.edu

Port=70

Path=1/Libraries

Or:

Host=gopher.sunet.se

Port=70

Path=1/libraries/yaleinfo

If you do not have a gopher client, one appropriate for your workstation

can be retrieved via anonymous ftp from the University of Minnesota, at

boombox.micro.umn.edu:/pub/gopher.

The paper document itself, in ASCII format, broken up by continents,

including this introduction and a list of instructions for different

catalogs, can be retrieved by anonymous ftp from

ftp.utdallas.edu:/pub/staff/billy/libguide.

ftp.unt.edu:/pub/library

ncftp>get libraries.txt

Receiving file: libraries.txt

100%  0 ||||||||||||||||||||||||||||||||||||||||||||||||| 795 bytes.

ETA:  0:00

libraries.txt: 795 bytes received in 0.10 seconds, 7.76 K/s.

ftp.unt.edu:/pub/library

ncftp>quit

~ %

Wuarchive FTPD

UNIX system managers may be interested in an alternate FTP server software package that is available. Washington University in St. Louis, the folks that brought you Wuarchive, have developed and released Wu-FTPD (probably as a result of bringing you Wuarchive). Wu-FTPD replaces your standard FTP server and adds the following features:

This software provides a greater degree of flexibility in providing FTP services. This is one way, for example, to limit the number of anonymous FTP users who can simultaneously access the server. You can also provide differing degrees of access based upon who users are or where they are located. For example, local users may be able to view the entire directory structure, whereas anonymous connections might be restricted to a particular directory. The access configuration file shown below will give you some idea of the level of customization that is possible with this package.

Wu-FTPD is available on wuarchive.wustl.edu in the /packages/wuarchive-ftpd directory. If you want to know more about Wu-FTP or discuss its various features, you can subscribe to two mailing lists. The lists wu-ftpd and wu-ftpd-announce are both maintained on listserv@ wunet.wustl.edu.

The following is a sample ftpaccess configuration file that is distributed with the Wu-FTPD package.

loginfails 2

class   local   real,guest,anonymous *.domain 0.0.0.0

class   remote  real,guest,anonymous *

limit   local   20  Any                 /etc/msgs/msg.toomany

limit   remote  100 SaSu|Any18000600   /etc/msgs/msg.toomany

limit   remote  60  Any                 /etc/msgs/msg.toomany

readme  README*    login

readme  README*    cwd=*

message /welcome.msg            login

message .message                cwd=*

compress        yes             local remote

tar             yes             local remote

# allow use of private file for SITE GROUP and SITE GPASS?

private         yes

# passwdcheck  <none|trivial|rfc822>  [<enforce|warn>]

passwdcheck    rfc822  warn

log commands real

log transfers anonymous,real inbound,outbound

shutdown /etc/shutmsg

# all the following default to "yes" for everybody

delete          no      guest,anonymous         # delete permission?

overwrite       no      guest,anonymous         # overwrite permission?

rename          no      guest,anonymous         # rename permission?

chmod           no      anonymous               # chmod permission?

umask           no      anonymous               # umask permission?

# specify the upload directory information

upload  /var/ftp  *             no

upload  /var/ftp  /incoming     yes     root    daemon  0600 dirs

upload  /var/ftp  /bin          no

upload  /var/ftp  /etc          no

# directory aliases... [note, the ":" is not required]

alias   inc:    /incoming

# cdpath

cdpath  /incoming

cdpath  /pub

cdpath  /

# pathfilter...

pathfilter  anonymous  /etc/pathmsg  ^[AZaz09_\.]*$  ^\.  ^

pathfilter  guest      /etc/pathmsg  ^[AZaz09_\.]*$  ^\.  ^

# specify which group of users will be treated as "guests".

guestgroup ftponly

email user@hostname

The Future of FTP

Without doubt, the standard FTP client is going to be useful for some time to come. There is a paradigm shift occurring on the Internet, however, as to how files are accessed for FTP. Services like Gopher and WWW, which do not require a static connection, are gaining favor among system managers, who want to ease the load on their FTP servers. They are also gaining favor among Internet users, because the user interface for those programs tends to be fairly intuitive. Programs like NcFTP provide a greater degree of automation and configuration to the FTP user. The management of FTP servers has been given a greater degree of configurability and control by programs like Wu-FTPD. FTP can only get easier as time goes on.

Previous Page TOC Index Next Page Home