The Systems file (/usr/lib/uucp/Systems) contains the information needed by the uucico daemon to establish a communications link to a remote computer. Each entry in the file represents a computer that can be called by your computer.
In addition, the Systems file can be configured to prevent any computer that does not appear in this file from logging in on your computer. More than one entry may be present for a particular computer. The additional entries represent alternative communication paths that can be tried in sequential order.
Each entry in the
file has the following format
(each field must be separated by a space):
sitename schedule device speed phone login-script
The schedule field consists of three subfields. The first, day, is required. The other two, time and retry, are optional. The syntax is as follows:
The day subfield can contain the following keywords:
For example, the following permits calls on Mondays, Wednesdays, and Fridays between the hours of 9:00am and noon (the schedule field is in boldface for clarity):
grebeYou can also specify more than one set of day and time entries by separating them with commas. This is useful for more complex specifications. The following example allows calls from 5:00pm to 8:00pm, Monday through Thursday, and calls any time on Saturday and Sunday. This example would be an effective way to call only when phone rates are low, if immediate transfer is not critical:
MoWeFr0900-1200ACU D1200 14087672676 ogin: nuucp ssword: Crested
gorgonThe optional subfield, retry, is available to specify the minimum time (in minutes) before a retry following a failed attempt. The subfield separator is a semicolon (;). For example, the following is interpreted as ``call any time, but wait at least 9 minutes before retrying after a failure occurs'':
Wk1700-0800,SaSuACU D1200 14087672676 ogin: nuucp ssword: DontLook
Any;9By default, UUCP uses a method called exponential backoff to allow retry of failed calls. UUCP does not allow another call to go through until after the retry time has elapsed. This interval expands exponentially as the number of unsuccessful attempts increases. The retry field overrides the exponential backoff algorithm. If you set the retry field to 9, for example, UUCP allows another attempt to connect 9 minutes after each failure. The retry field cannot be set lower than 5 minutes.
UUCP does not automatically try a failed call again.
You must have polling set up as described in
``Setting up polling''
or manually invoke
Any files not transferred due to a connection failure are
transferred at the next successful connection to that system.
The device field selects the device type, in most cases
an ACU (Automatic Call Unit).
For example, the keyword used in the following field is
matched against the first field of
D1200 14087672676 ogin:
nuucp ssword: DontLook
tty2A - 1200 /usr/lib/uucp/dialHA12
Additional documentation on the device field is located in the /usr/lib/uucp/Systems file supplied with your system.
This field can contain a letter
and speed (for example, C1200, D1200)
to differentiate between classes of dialers -- refer to
``The speed field''.
Some devices can be used at any speed, so the keyword
Any can be used.
However, we recommend that you specify the actual range of speeds
that can be used. (If Any
is used in both Systems and Devices
entries, 1200 is assumed.) For example, this field must intersect the
speed field in the associated Devices file entry:
gorgon Any ACU
nuucp ssword: DontLook
ACU tty1A -
If information is not required for this field, use a hyphen () as a place holder for the field.
Some modems can determine the connection baud rate from the carrier sent by a remote system. These modems inform the local system of the connection baud rate before issuing the Carrier Detect (CD) signal. The Hayes 2400 dialer supplied with UUCP detects different connection baud rates and informs UUCP and cu when it exits with a successful connection.
The speed fields in Devices and Systems can specify a range
of baud rates for a connection. If a dialer supports baud rates from 300
to 2400 baud, enter the baud rate range in the speed field of Devices
If a dialer or modem does not allow variable baud rates, place a single baud rate in the speed field. If a remote system supports several different speeds, place the range of baud rates in the speed field of Systems. If the remote system connects at a single baud rate, place that number in Systems. UUCP passes the highest common speed of the Systems and Devices baud rate ranges to the dialer when connecting. If the dialer connects outside of the baud range in the Systems file, it returns a bad baud rate error. Otherwise, it returns the baud rate of the connection.
This field provides the phone
number used for the modem dialer.
The phone number is made up of an optional alphabetic
abbreviation and a numeric part.
If an abbreviation is used, it must be one that
is listed in the Dialcodes file.
``Creating a portable UUCP Systems file''
gorgon Any ACU D1200
nuucp ssword: DontLook
In this string, an equal sign (=) tells the ACU to wait for a secondary dial tone before dialing the remaining digits. A dash in the string () instructs the ACU to pause 2 seconds before dialing the next digit.
Do not use the comma (from the Hayes command set) in a Systems file entry when you wish to indicate a pause. Use hyphens instead.
If your computer is connected to a LAN switch or port selector, you can access other computers that are connected to that switch. The Systems file entries for these computers do not have a phone number in the phone field. Instead, this field contains the token that must be passed on to the switch so it knows which computer your computer wishes to communicate with. (This is usually just the system name.) The associated Devices file entry should have a ``\D'' at the end of the entry to prevent translation using the Dialcodes entry.
The login-script opens communications between modems,
and also recognizes and sends proper login and password sequences.
The script a series of space-separated fields and subfields
of the following format:
where expect is the string that is received, and send is the string that is sent when the expect string is received.
The expect field can be made up of subfields of the following form:
where the subsend is sent if the prior expect is not successfully read and the subexpect following the subsend is the next expected string. To make this distinction clear: the send-expect sequence sends a string if the expect string is received; the subsend-subexpect sends only if the prior expect string is not received within 10 seconds.
For example, with ``login:--login:'', the UUCP program expects ``login:''. If a ``login:'' is received, it goes on to the next field. If it does not get ``login:'', it sends nothing followed by a carriage return, then looks for ``login:'' again. If no characters are initially expected from the remote computer, the null string ("") should be used in the first expect field. Note that all send fields are sent followed by a carriage return unless the send string is terminated with a ``\c''.
If an expect string starts with a dash, it is interpreted as a null expect string followed by a subsend string. For example, ``--login:'' sends a carriage return and then expects a ``login:''.
The expect string need not be complete; only the trailing characters must be specified, as in ``ogin:''. This avoids difficulties with login strings that use an uppercase letter as in ``Login:'' or ``Password:'', and also difficulties when the line is shared by dial-in and dial-out.
This section explains in greater detail how to create a login (``chat'') script.
Consider the following sample Systems file entry:
terps Any ACU 1200 18005211980 "" \r ogin:-BREAK-ogin: uucpx word: ichoreThis is how this script would work during connection:
Login (Chat) script escape sequences
|\N||sends a null character (ASCII NULL).|
|\b||sends or expects a backspace character.|
|\c||if at the end of a string, suppresses the carriage return that is normally sent. Ignored otherwise.|
|\d||delays two seconds before sending or reading more characters.|
|\p||pauses for approximately ¼ to ½ second.|
|\E||starts echo checking. (After this sequence is used, whenever a character is transmitted, the system waits for the character to be received before doing anything else.)|
|\e||turns echo check off.|
|\n||sends or expects a newline character.|
|\r||sends or expects a carriage-return.|
|\s||sends or expects a space character.|
|\t||sends or expects a tab character.|
|\\||sends or expects a ``\'' character.|
|EOT||sends EOT (end of transmission or <Ctrl>d)|
|BREAK||sends a BREAK signal.|
|\K||same as BREAK.|
|\ddd||collapses the octal digits (ddd) into a single character whose value is the ASCII character represented by that number (for example: \007).|
|""||expects a null string.|