uux (1)





NAME

       uux - Remote command execution over UUCP


SYNOPSIS

       uux [ options ] command


DESCRIPTION

       The  uux command is used to execute a command on a remote system, or to
       execute a command on the local system using files from remote  systems.
       The  command  is  not executed immediately; the request is queued until
       the uucico (8) daemon calls the system and executes it.  The daemon  is
       started  automatically  unless  one  of the -r or --nouucico options is
       given.

       The actual command execution is done by the uuxqt (8) daemon.

       File arguments can be gathered from remote  systems  to  the  execution
       system,  as  can  standard input.  Standard output may be directed to a
       file on a remote system.

       The command name may be preceded by a system name followed by an excla-
       mation point if it is to be executed on a remote system.  An empty sys-
       tem name is taken as the local system.

       Each argument that contains an exclamation point is treated as naming a
       file.  The system which the file is on is before the exclamation point,
       and the pathname on that system follows it.  An empty  system  name  is
       taken  as  the  local system; this must be used to transfer a file to a
       command being executed on a remote system.  If the path  is  not  abso-
       lute, it will be appended to the current working directory on the local
       system; the result may not be meaningful on the remote system.  A path-
       name may begin with ~/, in which case it is relative to the UUCP public
       directory (usually /var/spool/uucppublic) on the appropriate system.  A
       pathname  may  begin  with  ~name/, in which case it is relative to the
       home directory of the named user on the appropriate system.

       Standard input and output may be redirected  as  usual;  the  pathnames
       used may contain exclamation points to indicate that they are on remote
       systems.  Note that the redirection characters must be quoted  so  that
       they  are  passed  to uux rather than interpreted by the shell.  Append
       redirection (>>) does not work.

       All specified files are  gathered  together  into  a  single  directory
       before execution of the command begins.  This means that each file must
       have a distinct base name.  For example,
            uux 'sys1!diff sys2!~user1/foo sys3!~user2/foo >!foo.diff'
       will fail because both files will be copied to sys1  and  stored  under
       the name foo.

       Arguments  may  be  quoted  by  parentheses  to avoid interpretation of
       exclamation points.  This is useful when executing the uucp command  on
       a remote system.

       A  request  to execute an empty command (e.g., uux sys!)  will create a
       poll file for the specified system.
            Do  not  copy  local  files  to  the spool directory.  This is the
            default.  If they are removed before being processed by the uucico
            (8) daemon, the copy will fail.  The files must be readable by the
            uucico (8) daemon, as well as the by the invoker of uux.

       -C, --copy
            Copy local files to the spool directory.

       -l, --link
            Link local files into the spool directory.  If a file can  not  be
            linked  because  it  is  on  a different device, it will be copied
            unless one of the -c or --nocopy options also  appears  (in  other
            words,  use  of  --link  switches  the  default  from  --nocopy to
            --copy).  If the files are changed before being processed  by  the
            uucico  (8)  daemon, the changed versions will be used.  The files
            must be readable by the uucico (8)  daemon,  as  well  as  by  the
            invoker of uux.

       -g grade, --grade grade
            Set  the  grade  of  the  file transfer command.  Jobs of a higher
            grade are executed first.  Grades run 0 ... 9 A ... Z a ... z from
            high to low.

       -n, --notification=no
            Do not send mail about the status of the job, even if it fails.

       -z, --notification=error
            Send  mail  about  the  status of the job if an error occurs.  For
            many uuxqt daemons, including the Taylor UUCP uuxqt, this  is  the
            default  action;  for  those,  --notification=error  will  have no
            effect.  However, some uuxqt daemons will send  mail  if  the  job
            succeeds  unless the --notification=error option is used, and some
            other uuxqt daemons will not send mail if the job fails unless the
            --notification=error option is used.

       -r, --nouucico
            Do  not  start  the uucico (8) daemon immediately; merely queue up
            the execution request for later processing.

       -j, --jobid
            Print jobids on standard output.  A jobid will  be  generated  for
            each file copy operation required to perform the operation.  These
            file copies may be cancelled by passing the jobid  to  the  --kill
            switch  of uustat (1), which will make the execution impossible to
            complete.

       -a address, --requestor address
            Report job status to the specified e-mail address.

       -x type, --debug type
            Turn on particular debugging types.  The following types are  rec-
            ognized:  abnormal, chat, handshake, uucp-proto, proto, port, con-
            fig, spooldir, execute, incoming, outgoing.  Only  abnormal,  con-
            fig, spooldir and execute are meaningful for uux.

            Multiple  types may be given, separated by commas, and the --debug
            option may appear multiple times.  A number  may  also  be  given,

       --help
            Print a help message and exit.


EXAMPLES

       uux -z - sys1!rmail user1
       Execute  the  command  ``rmail user1'' on the system sys1, giving it as
       standard input whatever is given to uux as standard input.  If a  fail-
       ure occurs, send a message using mail (1).

       uux 'diff -c sys1!~user1/file1 sys2!~user2/file2 >!file.diff'
       Fetch  the two named files from system sys1 and system sys2 and execute
       diff putting the result in file.diff in  the  current  directory.   The
       current  directory must be writable by the uuxqt (8) daemon for this to
       work.

       uux 'sys1!uucp ~user1/file1 (sys2!~user2/file2)'
       Execute uucp on the system sys1 copying file1 (on system sys1) to sys2.
       This illustrates the use of parentheses for quoting.


RESTRICTIONS

       The remote system may not permit you to execute certain commands.  Many
       remote systems only permit the execution of rmail and rnews.

       Some of the options are dependent on the capabilities of the uuxqt  (8)
       daemon on the remote system.


FILES

       The  file names may be changed at compilation time or by the configura-
       tion file, so these are only approximations.

       /etc/uucp/config - Configuration file.
       /etc/uucp/oldconfig/ - Alternative configuration (HDB or V2 format)
       /var/spool/uucp - UUCP spool directory.
       /var/log/uucp/Log - UUCP log file.
       /var/spool/uucppublic - Default UUCP public directory.


SEE ALSO

       mail(1), uustat(1), uucp(1), uucico(8), uuxqt(8)


BUGS

       Files can not be referenced across multiple systems.

       Too many jobids are output by --jobid, and there is no good way to can-
       cel a local execution requiring remote files.


AUTHOR

       Ian Lance Taylor (ian@airs.com)

                               Taylor UUCP 1.06                         uux(1)