UUCP /etc/uucp/Systems File
The /etc/uucp/Systems file contains the information that is needed by the uucico daemon to
establish a communication link to a remote computer. /etc/uucp/Systems is the first file
that you need to edit to configure UUCP.
Each entry in the Systems file represents a remote computer with which your
host communicates. A particular host can have more than one entry. The additional entries represent
alternative communication paths that are tried in sequential order. In addition, by default UUCP prevents
any computer that does not appear in /etc/uucp/Systems from logging in to your host.
By using the Sysfiles file, you can define several files to be used
as Systems files. See UUCP /etc/uucp/Sysfiles File for a description of Sysfiles.
The following is the syntax for an entry in the Systems file:
System-Name Time Type Speed Phone Chat Script
See the following example of an entry in the Systems file.
Example 26-1 Entry in /etc/uucp/Systems
Arabian Any ACUEC 38400 111222 ogin: Puucp ssword:beledi
Entry for the System-Name field. For more information, see System-Name Field in /etc/uucp/Systems File.
Entry for the Time field. For more information, see Time Field in /etc/uucp/Systems File.
Entry for the Type field. For more information, see Type Field in /etc/uucp/Systems File.
Entry for the Speed field. For more information, see Speed Field in /etc/uucp/Systems File.
Entry for the Phone field. For more information, see Phone Field in /etc/uucp/Systems File.
- ogin: Puucp ssword:beledi
Entry for the Chat Script field. For more information, see Chat-Script Field in /etc/uucp/Systems File.
System-Name Field in /etc/uucp/Systems File
This field contains the node name of the remote computer. On TCP/IP networks, this
name can be the machine's host name or a name that is created specifically
for UUCP communications through the /etc/uucp/Sysname file. See UUCP /etc/uucp/Systems File. In Example 26-1, the System-Name
field contains an entry for remote host Arabian.
Time Field in /etc/uucp/Systems File
This field specifies the day of week and time of day when the remote
computer can be called. The format of the Time field follows:
day Portion of Time Field
The day portion can be a list that contains some of the following entries.
- Su Mo Tu We Th Fr Sa
For individual days.
For any weekday.
For any day.
Your host never initiates a call to the remote computer. The call must be initiated by the remote computer. Your host is then operating in passive mode.
time Portion of Time Field
Example 26-1 shows Any in the Time field, which indicates that host Arabian can be called
at any time.
The time portion should be a range of times that are specified in 24-hour
notation, for example, 0800-1230 for 8:30 a.m. to 12:30 p.m. If no time portion
is specified, any time of day is assumed to be allowed for the call.
A time range that spans 0000 is permitted. For example, 0800-0600 means all
times are allowed other than times between 6 a.m. and 8 a.m.
retry Portion of Time Field
The retry subfield enables you to specify the minimum time (in minutes) before a
retry, following a failed attempt. The default wait is 60 minutes. The subfield separator is
a semicolon (;). For example, Any;9 is interpreted as call any time, but
wait at least 9 minutes before retrying after a failure occurs.
If you do not specify a retry entry, an exponential back-off algorithm is
used. This means that UUCP starts with a default wait time that grows larger
as the number of failed attempts increases. For example, suppose the initial retry time is
5 minutes. If no response occurs, the next retry is 10 minutes later. The
next retry is 20 minutes later, and so on until the maximum retry time
of 23 hours is reached. If retry is specified, the value specified is always the
retry time. Otherwise, the back-off algorithm is used.
Type Field in /etc/uucp/Systems File
This field contains the device type that should be used to establish the communication
link to the remote computer. The keyword that is used in this field is
matched against the first field of Devices file entries.
Example 26-2 Keyword With the Type Field
Arabian Any ACUEC, g 38400 1112222 ogin: Puucp ssword:beledi
You can define the protocol that is used to contact the system by adding
the protocol to the Type field. The previous example shows how to attach the
protocol g to the device type ACUEC. For information about protocols, see Protocol Definitions in /etc/uucp/Devices File.
Speed Field in /etc/uucp/Systems File
This field, also known as the Class field, specifies the transfer speed of the
device that is used in establishing the communication link. The UUCP speed field can
contain a letter and speed, such as C1200 or D1200, to differentiate between
classes of dialers. Refer to Class Field in the /etc/uucp/Devices File.
Some devices can be used at any speed, so the keyword Any can
be used. This field must match the Class field in the associated Devices file entry.
Example 26-3 Entry in Speed Field
eagle Any ACU, g D1200 NY3251 ogin: nuucp ssword:Oakgrass
If information is not required for this field, use a dash (-) as a
placeholder for the field.
Phone Field in /etc/uucp/Systems File
This field enables you to specify the telephone number, known as a token, of the
remote computer for automatic dialers, which are known as port selectors. The telephone number consists
of an optional alphabetic abbreviation and a numeric part. If an abbreviation is used,
the abbreviation must be listed in the Dialcodes file.
Example 26-4 Entry in the Phone Field
nubian Any ACU 2400 NY555-1212 ogin: Puucp ssword:Passuan
eagle Any ACU, g D1200 NY=3251 ogin: nuucp ssword:Oakgrass
In the Phone field, an equal sign (=) instructs the ACU to wait for a
secondary dial tone before dialing the remaining digits. A dash (-) in the string instructs
the ACU to pause four seconds before dialing the next digit.
If your computer is connected to a port selector, you can access other computers
that are connected to that selector. The Systems file entries for these remote machines should
not have a telephone number in the Phone field. Instead, this field should contain the
token to be passed to the switch. In this way, the port selector
knows the remote machine with which your host wants to communicate, usually just the system
name. The associated Devices file entry should have a \D at the end of
the entry to ensure that this field is not translated by using the
Chat-Script Field in /etc/uucp/Systems File
This field, also known as the Login field, contains a string of characters that
is called a chat-script. The chat script contains the characters the local and remote
machines must pass to each other in their initial conversation. Chat scripts have the
expect send [expect send] ....
expect represents the string that the local host expects to receive from the remote
host to initiate conversation. send is the string that the local host sends after the
local host receives the expect string from the remote host. A chat
script can have more than one expect-send sequence.
A basic chat script might contain the following:
Login prompt that the local host expects to receive from the remote machine
Login name that the local host sends to the remote machine in order to log in
Password prompt that the local host expects to receive from the remote machine
Password that the local host sends to the remote machine
The expect field can be composed of subfields of the following form:
The -send is sent if the prior expect is not successfully read. The -expect
that follows the -send is the next expected string.
For example, with strings login--login, the UUCP on the local host expects login. If
UUCP receives login from the remote machine, UUCP goes to the next field. If
UUCP does not receive login, UUCP sends a carriage return, then looks
for login again. If the local computer initially does not expect any characters, use
the characters "", for NULL string, in the expect field. All send fields are
sent with a carriage return appended unless the send string is terminated with a \c.
The following is an example of a Systems file entry that uses an expect-send
sonora Any ACUEC 9600 2223333 "" \r \r ogin:-BREAK-ogin: Puucpx ssword:xyzzy
This example instructs UUCP on the local host to send two carriage returns and
wait for ogin: (for Login:). If ogin: is not received, send a
BREAK. When you do receive ogin:, send the login name Puucpx. When you receive ssword:
(for Password:), send the password xyzzy.
The following table lists some useful escape characters.
Table 26-1 Escape Characters Used in the Chat-Script Field of the Systems File
Sends or expects
a backspace character.
If at the end of a string, suppresses the carriage
return that is normally sent. Ignored otherwise.
Delays 1–3 seconds before sending more
Starts echo checking. From this point forward, whenever a
character is transmitted, UUCP waits for the character to be received before continuing its checks.
Ignores one hangup. Use this option for
Sends a BREAK character.
Turns off CLOCAL flag.
expects a newline character.
Sends a NULL character (ASCII NUL).
approximately 1/4 to 1/2 second.
Sends or expects a carriage return.
or expects a space character.
Sends or expects a tab character.
Sends an EOT, followed by newline twice.
Sends a BREAK character.
Sends or expects the character that is represented by the octal digits (ddd).
Enabling Dialback Through the Chat Script
Some companies set up dial-in servers to handle calls from remote computers. For example,
your company might have a dial-in server with a dialback modem that employees can call
from their home computers. After the dial-in server identifies the remote machine, the dial-in
server disconnects the link to the remote machine and then calls back the remote machine.
The communications link is then reestablished.
You can facilitate dialback by using the \H option in the Systems file chat script
at the place where dialback should occur. Include the \H as part of an
expect string at the place where the dial-in server is expected to hang up.
For example, suppose the chat script that calls a dial-in server contains the following
The UUCP dialing facility on the local machine expects to receive the characters, INITIATED, from
the dial-in server. After the characters, INITIATED, have been matched, the dialing facility flushes any
subsequent characters that the dialing facility receives until the dial-in server hangs up. The local
dialing facility then waits until it receives the next part of the expect string,
the characters ogin:, from the dial-in server. When it receives the ogin:, the
dialing facility then continues through the chat script.
A string of characters does not need to directly precede or follow the \H, as
shown in the previous sample string.
Hardware Flow Control in /etc/uucp/Systems File
You can also use the pseudo-send STTY=value string to set modem characteristics. For instance,
STTY=crtscts enables hardware flow control. STTY accepts all stty modes. See the stty(1) and
termio(7I) man pages for complete details.
The following example enables hardware flow control in a Systems file entry:
unix Any ACU 2400 12015551212 "" \r ogin: Puucp ssword:Passuan "" \ STTY=crtscts
This pseudo-send string can also be used in entries in the Dialers file.
Setting Parity in /etc/uucp/Systems File
In some situations, you have to reset the parity because the system that you
are calling checks port parity and drops the line if it is wrong.
The expect-send couplet, "" P_ZERO, sets the high-order bit (parity bit) to 0.
See this expect-send couplet in the following example:
unix Any ACU 2400 12015551212 "" P_ZERO "" \r ogin: Puucp ssword:Passuan
The following are parity couplets that can follow the expect-send couplet, "" P_ZERO:
- "" P_EVEN
Sets the parity to even, which is the default
- "" P_ODD
Sets the parity to odd
- "" P_ONE
Sets the parity bit to 1
These parity couplets can be inserted anywhere in the chat script. The parity couplets
apply to all information in the chat script that follows "" P_ZERO, the expect-send
couplet. A parity couplet can also be used in entries in the Dialers file. The
following example includes the parity couplet, "" P_ONE:
unix Any ACU 2400 12015551212 "" P_ZERO "" P_ONE "" \r ogin: Puucp ssword:Passuan