uux Command

Purpose

Runs a command on another UNIX-based system.

Syntax

uux [ -c | -C ] [ -n | -z ] [ - ] [ -aName ] [ -b ] [ -gGrade ] [ -j ] [ -p ] [ -e ] [ -r ] [ -sFile ] [  -xDebugLevel ] CommandString

Description

The uux command is a Basic Networking Utility (BNU) that runs a specified command on a specified UNIX-based system while enabling the user to continue working on the local system. Before running the requested command, the uux command gathers any necessary files from the designated systems. The user can direct the output from the command to a specific file on a specific system. For security reasons, many installations permit the uux command to run only the rmail command.

The uux commands on other systems create execute (X.*) files that run commands on the local system. In addition, the uux command on the local system creates both command (C.*) files and data (D.*) files for transfer to other systems. Execute files contain the command string to be executed on the designated system. Command files contain the same information as those created by the uucp command. Data files either contain the data for a remote command execution or else become X.* files on remote systems for remote command executions.

The full path name of an execute file is a form of the following:

/var/spool/uucp/System/X.SystemNxxxx

After creating the files in the spooling directory, the uux command calls the uucico daemon to transfer the files from the spooling directory on the local system to the designated remote system. Once the files are transferred, the uuxqt daemon on the remote system executes the CommandString on the specified system, placing any output from the command in the file designated by the original uux command request.

The CommandString argument is made up of one or more arguments that look like an operating system command line, except that CommandString argument may be prefixed by the name of the remote system in the form System!. The default System is the local system. Unless the user entering the uux command includes the -n flag, the command notifies that user if the remote system does not run the command. This response comes by mail from the remote system.

Source and Destination File Names

Flags

Item Description
- Makes the standard input to the uux command the standard input to the CommandString argument.
-aName Replaces the user ID of the person issuing the command with the user ID specified with the Name variable.
-b Returns standard input to the command if the exit status is not zero.
-c Transfers the source files to the destination on the specified system. The source files are copied into the spooling directory, and the uucico daemon is invoked immediately. This flag is the default.
-C Transfers the source files to the spool directory. After a set period of time (specified in the uusched program), the uucico daemon attempts to transfer the files to the destination on the specified computer.

Occasionally, there are problems in transferring a source file; for example, the remote computer may not be working or the login attempt may fail. In such cases, the file remains in the spool directory until it is either transferred successfully or removed by the uucleanup command.

Item Description
-e Enables file expansion.
-gGrade Specifies when the files are to be transmitted during a particular connection. The Grade variable specifies a single number (0 through 9) or letter (A through Z, a through z); lower ASCII-sequence characters cause the files to be transmitted earlier than do higher sequence characters. The number 0 is the highest (earliest) grade; z is the lowest (latest). The default is N.
-j Displays the job identification number of the process that is running the command on the specified system. Use this job ID with the BNU uustat command to check the status of the command or with the uustat -k flag to terminate the process.
-n Prevents user notification by the mail command of the success or failure of a command. The default is to notify the user if the command fails.
-p Uses the standard input to the uux command as the standard input to the CommandString argument. A - (minus) has the same effect.
-r Prevents the starting of the spooling program that transfers files between systems. The default is to start the spooling program.
-sFile Reports the status of the transfer in a file specified by the File variable on the designated system. File names can contain only ASCII characters.
-xDebugLevel Displays debugging information on the screen of the local system. The DebugLevel variable must be a number from 0 to 9. A higher number gives a more detailed report.
-z Notifies the user if the command completes successfully. This flag is the opposite of the system default, which is to notify the user only in the event of a failure.

Examples

  1. To run the qprt command on a remote system, enter:
    uux merlin!qprt /reports/memos/lance
    In this example, the remote file /reports/memos/lance is printed on remote system merlin. Since neither the -n nor -z flag is specified, the uux command notifies the user only if the remote system fails to run the command. The response comes by the mail command from the remote system.
  2. To run commands on two remote systems, enter the information on separate command lines:
    uux merlin!qprt /reports/memos/lance
    uux zeus!qprt /test/examples/examp1
    In this example, the remote /reports/memos/lance file is printed on remote system merlin, and the remote /test/examples/examp1 file is printed on remote system zeus. Since neither the -n nor -z flag is specified, the uux command notifies the user only if the remote system fails to run the command. The response comes by the mail command from the remote system.
  3. To queue a job that compares a file on the local system with a file on a remote system, using the diff command on the local system, and get the job ID of the job, enter:

    uux  -j "/usr/bin/diff /usr/amy/f1 hera!/home/amy/f2 > ~/f1.diff"

    In this example, the /usr/amy/f1 file on the local system is compared to the /home/amy/f2 file on the remote system hera and the output is placed in the f1.diff file in the local public directory (the full path name of this file is /var/spool/uucppublic/f1.diff). The destination name must be entered either preceded by a > with the whole command string enclosed in " " (quotation marks) or entered enclosed in braces and backslashes, as \{ DestinationName \}. The -j flag causes the uux command to return the BNU job ID of the job.
  4. To use the diff command on the local system to compare files that are located on two different remote systems, enter:
    uux "!/usr/bin/diff hera!/usr/amy/f1 venus!/home/amy/f2 > \ !f1.diff"
    In this example, the /usr/amy/f1 file from the remote system hera is compared to the /home/amy/f2 file from the remote system venus and the output is placed in the file f1.diff, located in the current working directory on the local system.

    The output file must be write-enabled. If you are uncertain about the permission status of a specific target output file, direct the results to the public directory. The exclamation points representing the local system are optional. The destination name must be entered either preceded by a > with the whole command string enclosed in " " (quotation marks) or entered enclosed in braces and backslashes, as \{ DestinationName \}.

  5. To execute the diff command on two separate files from different systems, enter:
    uux "hera!/usr/bin/diff /tmp/out1 zeus/tmp/out2 > ~/DF"
    In this example, the diff file is on the remote system hera. The first source file is on the remote system hera, and the secondfile is on the system zeus. (zeus may be the local system or another remote system.) The output is directed to the file DF in the public directory on the local system.
  6. To specify an output file on a different remote system, enter:
    uux hera!uucp venus!/home/amy/f1 \{merlin!/home/geo/test\}
    In this example, the uucp command is run on the remote system hera, and the /home/amy/f1 file, stored on system venus, is sent to user geo on system merlin as test. The destination name is entered enclosed in braces and backslashes.
  7. To get selected fields from a file on a remote system and place them in a file on the local system, enter:
    uux "cut -f1 -d: hera\!/etc/passwd > ~/passw.cut"
    In this example, the cut command is run on the local system. The first field from each line of the password file on system hera is placed in the passw.cut file in the public directory on the local system. The uux command is running in a C shell, so a \ (backslash) must precede the exclamation point in the name of the remote system.
  8. To use the uux piping option to specify a remote copy of the /tmp/example file to /tmp/examplecopy on system mercury use the following syntax:
    uux -p mercury!
    cp /tmp/example /tmp/examplecopy
      
    The user must enter a Ctrl-D in order to terminate the command input. After Ctrl-D is pressed, the command will be spooled for remote execution on system mercury.

Files

Item Description
/usr/bin/uux Contains the uux command.
/var/spool/uucp Is the spooling directory.
/var/spool/uucppublic Is the public directory.