The Major UUCP Commands

If there are multiple ways to reach a remote host, it could be multiple entries for that host in the configuration file. However, the configuration file Systems or L.sys only includes a designation for the specified connection; it does not describe the implemented hardware. Another file, Devices in BNU or L−devices in Version 2, contains one−to−one mapping between the designated connection and what device name the daemon uucico should use to access the actual device for example, the serial line to use. If a device is a modem, additional needed information how to dial could be found in the file acucap, or Dialers in BNU or modemcap in Version 2. In the early days of UUCP, some UUCP versions even had dialing instructions hardcored into the uucp program. There are several reasons why the file transfer may not occur immediately. First, the transfer can be restricted to a particular time through the configuration file itself; second, the telephone line can be busy at that very moment. In that case, uucico will leave the corresponding status file and try again the next time it is invoked. The procedure will repeat until successful transfer is performed, or the minimum retry period has elapsed by default, 55 or 60 minutes. The file transfer is performed between two uucico daemons, on the source and the destination host. The uucico on the source calling system is playing master role — it controls the link; the uucico on the destination receiving system plays slave role — it checks local permissions to authorize the transfer. Two daemons communicate chat between themselves; when nothing is left to be transferred in either direction, they agree to hang up. At that point, another daemon uuxqt is invoked to scan the spool directory for any outstanding execution request from the remote system. If such a request exists, uuxqt forks a command to do what the user asked for. We will return to the UUCP configuration files later.

24.5 UUCP Commands, Daemons, and Related Issues

We already mentioned major UUCP commands and daemons. Now, we will discuss them in more detail.

24.5.1 The Major UUCP Commands

UUCP related commands are located in the usrbin directory: ls −l usrbin | grep uucp HP−UX 10.20 −r−sr−xr−x 1 uucp bin 45056 May 30 1996 uucp −r−sr−xr−x 1 uucp bin 24576 May 30 1996 uuls −r−sr−xr−x 1 uucp bin 12288 May 30 1996 uuname −r−sr−xr−x 1 uucp bin 16384 May 30 1996 uusnap −r−sr−xr−x 1 uucp bin 36864 May 30 1996 uustat −r−sr−xr−x 1 uucp bin 49152 May 30 1996 uux Among them, two commands present core UUCP commands that existed through all UUCP flavors and releases; they are uucp and uux. 24.5.1.1 The uucp Command The uucp command copies each source−file to the named destination−file. A filename may be a fullpath name on the local system host, or may have the form: 604 where system−name Specifies a remote system host. The system−name may also be a list of names such as: system−namesystem−name…system−namepathname in which case an attempt is made to send the file via the specified route to the destination. The shell metacharacters ?, , and [ ] appearing in the pathname part will be expanded on the appropriate system. pathname Specifies the fullpath of the designated file. The uucp preserves execute permissions across the transmission and grants read and write permissions to everybody file mode 666. The format of the uucp command is: uucp −options source−file destination−file where source−file Specify a source file to be copied destination−file Specify a designated copied file and the options are: Option Meaning −c Use the source file when copying out rather than copying the file to the spool directory. This is the default. −C Make a copy of outgoing files in the UUCP spool directory, rather than copying the source file directly to the target system. This lets you remove the source file after issuing the uucp command. −d Make all necessary directories for the file copy. This is the default. −f Do not make intermediate directories for the file copy. −j Output the job identification ASCII string on the standard output. This job identification can be used by uustat to obtain the status or terminate a job. −m Send mail to the requester when the copy is complete. −r Do not start the uucico daemon, just queue the job. −g grade grade is a single letter or number, from 0 to 9, A to Z, or a to z; 0 is the highest grade, and z is the lowest grade. Lower grades will cause the job to be transmitted earlier during a particular conversation. The default grade is n. By way of comparison, uux defaults to A; mail is usually sent at grade C. −n username Notify username at the remote system that is, send username mail that a file was sent. 605 24.5.1.2 The uux Command The uux will gather files from various systems, execute a command on a specified system and send the standard output to a file on a specified system. For security reasons, most installations limit the list of commands executable on behalf of an incoming request from uux, permitting only the receipt of mail. Remote execution permissions are defined in the corresponding configuration file. The command−string is made up of one or more arguments that look like a shell command line, except that the command and file names may be prefixed by system−name; a null system−name is interpreted as the local system. The format of the uux command is: uux −options command−string The − option sends the standard input to the uux command as the standard input to the command−string. Other options are: Option Meaning −b Return whatever standard input was provided to the uux command if the job fails that is, returns a non−zero exit status. −c Use the source file when copying out rather than copying the file to the spool directory. This is the default. −C Force the copy of local files to the spool directory for transfer. −n Do not return any indication by mail of success or failure of the job. −p Same as −: the standard input to uux is made the standard input to the command−string. −r Do not start the uucico daemon, just queue the job. −z Return an indication by mail even if the job succeeds that is, returns a zero exit status. −a name Use name as the user identification replacing the initiator user ID. Notification will be returned to the user. −g grade grade is a single letter or number, from 0 to 9, A to Z, or a to z; 0 is the highest grade, and z is the lowest grade. Lower grades will cause the job to be transmitted earlier during a particular conversation. The default grade is A. −x debug−level Produce debugging output on the standard output. A debug−level is a number between 0 and 9; higher numbers give more detailed information. The 5, 7, and 9 are good numbers to try; they give increasing amounts of detail. The uux will attempt to get all files to the execution system. For files that are output files, the file name must be escaped using parentheses. For example, the command: uux ahostcut −f1 bhostusrfile \chostusrfile\ gets the file usrfile from the system bhost and sends it to the system ahost, performs the cut command on that file, and sends the result of the cut command to the file usrfile on the system chost pay attention also to the escape backslash characters in front of parentheses. 606 uux diff ahostexamplefile1 bhostbusrexamplefile2 ~examplefile.diff will get the file1 and file2 files from the systems ahost and bhost, execute the diff command, and put the results in the file file.diff in the local PUBDIRexample directory.

24.5.2 The UUCP Daemons