General introductions to UUCP are available, and perhaps one day I will write one. In the meantime, here is a very brief one that concentrates on the programs provided by Taylor UUCP.
Taylor UUCP is a complete UUCP package. It is covered by the GNU Public License, which means that the source code is always available. It is composed of several programs; most of the names of these programs are based on earlier UUCP packages.
uucpprogram is used to copy file between systems. It is similar to the standard Unix
cpprogram, except that you can refer to a file on a remote system by using `system!' before the file name. For example, to copy the file `notes.txt' to the system `airs', you would say `uucp notes.txt airs!~/notes.txt'. In this example `~' is used to name the UUCP public directory on `airs'. For more details, see section Invoking uucp.
uuxprogram is used to request the execution of a program on a remote system. This is how mail and news are transferred over UUCP. As with
uucp, programs and files on remote systems may be named by using `system!'. For example, to run the
rnewsprogram on `airs', passing it standard input, you would say `uux - airs!rnews'. The `-' means to read standard input and set things up such that when
rnewsruns on `airs' it will receive the same standard input. For more details, see section Invoking uux.
uux actually do any work immediately.
Instead, they queue up requests for later processing. They then start a
daemon process which processes the requests and calls up the appropriate
systems. Normally the system will also start the daemon periodically to
check if there is any work to be done. The advantage of this approach
is that it all happens automatically. You don't have to sit around
waiting for the files to be transferred. The disadvantage is that if
anything goes wrong it might be a while before anybody notices.
uustatprogram does many things. By default it will simply list all the jobs you have queued with
uuxthat have not yet been processed. You can use
uustatto remove any of your jobs from the queue. You can also it use it to show the status of the UUCP system in various ways, such as showing the connection status of all the remote systems your system knows about. The system administrator can use
uustatto automatically discard old jobs while sending mail to the user who requested them. For more details, see section Invoking uustat.
uunameprogram by default lists all the remote systems your system knows about. You can also use it to get the name of your local system. It is mostly useful for shell scripts. For more details, see section Invoking uuname.
uulogprogram can be used to display entries in the UUCP log file. It can select the entries for a particular system or a particular user. You can use it to see what has happened to your queued jobs in the past. For more details, see section Invoking uulog.
uutois a simple shell script interface to
uucp. It will transfer a file, or the contents of a directory, to a remote system, and notify a particular user on the remote system when it arrives. The remote user can then retrieve the file(s) with
uupick. For more details, see section Invoking uuto, and see section Invoking uupick.
cuprogram can be used to call up another system and communicate with it as though you were directly connected. It can also do simple file transfers, though it does not provide any error checking. For more details, section Invoking cu.
These eight programs just described,
cu are the user programs provided by Taylor UUCP.
uuto add requests to the work queue,
uupick extracts files from the UUCP public directory,
uustat examines the work queue,
uuname examines the
uulog examines the log files, and
just uses the UUCP configuration files.
The real work is actually done by two daemon processes, which are normally run automatically rather than by a user.
uucicodaemon is the program which actually calls the remote system and transfers files and requests.
uucicois normally started automatically by
uux. Most systems will also start it periodically to make sure that all work requests are handled.
uucicochecks the queue to see what work needs to be done, and then calls the appropriate systems. If the call fails, perhaps because the phone line is busy,
uucicoleaves the requests in the queue and goes on to the next system to call. It is also possible to force
uucicoto call a remote system even if there is no work to be done for it, so that it can pick up any work that may be queued up remotely. For more details, see section Invoking uucico.
uuxqtdaemon processes execution requests made by the
uuxprogram on remote systems. It also processes requests made on the local system which require files from a remote system. It is normally started by
uucico. For more details, see section Invoking uuxqt.
Suppose you, on the system `bantam', want to copy a file to the
system `airs'. You would run the
uucp command locally, with
a command like `uucp notes.txt airs!~/notes.txt'. This would queue
up a request on `bantam' for `airs', and would then start the
uucico would see that there was a request
for `airs' and attempt to call it. When the call succeeded,
another copy of
uucico would be started on `airs'. The two
uucico would tell each other what they had to do and
transfer the file from `bantam' to `airs'. When the file
transfer was complete the
uucico on `airs' would move it
into the UUCP public directory.
UUCP is often used to transfer mail. This is normally done
automatically by mailer programs. When `bantam' has a mail message
to send to `ian' at `airs', it executes `uux - airs!rmail
ian' and writes the mail message to the
uux process as standard
uux program, running on `bantam', will read the
standard input and store it, as well as the
rmail request itself,
on the work queue for `airs'.
uux will then start the
uucico daemon. The
uucico daemon will call up
`airs', just as in the
uucp example, and transfer the work
request and the mail message. The
uucico daemon on `airs'
will put the files on a local work queue. When the communication
session is over, the
uucico daemon on `airs' will start the
uuxqt will see the request on the work
queue, and will run `rmail ian' with the mail message as standard
rmail program, which is not part of the UUCP package,
is then responsible for either putting the message in the right mailbox
on `airs' or forwarding the message on to another system.
Taylor UUCP comes with a few other programs that are useful when installing and configuring UUCP.
uuchkprogram reads the UUCP configuration files and displays a rather lengthy description of what it finds. This is useful when configuring UUCP to make certain that the UUCP package will do what you expect it to do. For more details, see section Invoking uuchk.
uuconvprogram can be used to convert UUCP configuration files from one format to another. This can be useful for administrators converting from an older UUCP package. Taylor UUCP is able to read and use old configuration file formats, but some new features can not be selected using the old formats. For more details, see section Invoking uuconv.
uuschedscript is provided for compatibility with older UUCP releases. It starts
uucicoto call, one at a time, all the systems for which work has been queued. For more details, see section Invoking uusched.
tstuuprogram is a test harness for the UUCP package; it can help check that the package has been configured and compiled correctly. However, it uses pseudo-terminals, which means that it is less portable than the rest of the package. If it works, it can be useful when initially installing Taylor UUCP. For more details, see section Testing the Compilation.