Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
uux(1C)			    Communication Commands		       uux(1C)

       uux - UNIX-to-UNIX system command execution

       uux [-] [-bcCjnprz] [-a name] [-g grade]	[-s filename] [-x debug_level]

       The uux utility will gather zero	or more	files  from  various  systems,
       execute	a  command on a	specified system and then send standard	output
       to a file on a specified	system.

       Note:  For security reasons, most installations limit the list of  com-
       mands  executable on behalf of an incoming request from uux, permitting
       only the	receipt	of mail	(see mail(1)). (Remote	execution  permissions
       are defined in /etc/uucp/Permissions.)

       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  pre-
       fixed  by  system-name!.	A null system-name is interpreted as the local

       File names may be one of	the following:

	 o  An absolute	path name.

	 o  A path name	preceded by ~xxx, where	xxx is a  login	 name  on  the
	    specified system and is replaced by	that user's login directory.

       Anything	else is	prefixed by the	current	directory.

       As an example, the command:

       example%	uux "!diff sys1!/home/dan/filename1 \
	      sys2!/a4/dan/filename2 > !~/dan/filename.diff"

       will  get  the filename1	and filename2 files from the sys1 and sys2 ma-
       chines, execute a diff(1) command and put the results in	 filename.diff
       in  the	local  PUBDIR/dan/ directory. PUBDIR is	a public directory de-
       fined  in  the	uucp   source.	 By   default,	 this	directory   is

       Any  special shell characters (such as <	> ; |) should be quoted	either
       by quoting the entire command-string, or	quoting	the special characters
       as  individual arguments. The redirection operators >>,	<<, >|,	and >&
       cannot be used.

       uux will	attempt	to get all appropriate files to	the  specified	system
       where they will be processed. For files that are	output files, the file
       name must be escaped using parentheses. For example, the	command:

       example%	uux "a!cut -f1 b!/usr/filename > c!/usr/filename"

       gets /usr/filename from system b	and sends it to	system a,  performs  a
       cut  command  on	 that  file and	sends the result of the	cut command to
       system c.

       uux will	notify you if the requested command on the remote  system  was
       disallowed.  This  notification can be turned off by the	-n option. The
       response	comes by remote	mail from the remote machine.

       The following options are supported:

       -	       The standard input to uux is made the standard input to
		       the command-string.

       -a name	       Uses  name as the user job identification replacing the
		       initiator user-id. (Notification	will  be  returned  to
		       user-id name.)

       -b	       Returns whatever	standard input was provided to the uux
		       command if the exit status is non-zero.

       -c	       Does not	copy local file	to  the	 spool	directory  for
		       transfer	to the remote machine (default).

       -C	       Forces  the  copy of local files	to the spool directory
		       for transfer.

       -g grade	       grade can be either  a  single  letter,	number,	 or  a
		       string  of  alphanumeric	 characters defining a service
		       grade. The uuglist(1C) command determines whether it is
		       appropriate  to	use  the  single  letter, number, or a
		       string of alphanumeric characters as a  service	grade.
		       The  output  from the uuglist command will be a list of
		       service grades that are available  or  a	 message  that
		       says  to	 use  a	single letter or number	as a  grade of

       -j	       Outputs the jobid string	on the standard	 output	 which
		       is  the job identification. This	job identification can
		       be used by uustat(1C) to	obtain the status   or	termi-
		       nate a job.

       -n	       Does not	notify the user	if the command fails.

       -p	       Same  as	-. The standard	input to uux is	made the stan-
		       dard input to the command-string.

       -r	       Does not	start the file transfer, but just  queues  the

       -s filename     Reports status of the transfer in filename. This	option
		       is accepted for compatibility, but it  is  ignored  be-
		       cause it	is insecure.

       -x debug_level  Produces	 debugging  output on the standard output. de-
		       bug_level is a number between 0 and 9.  As  debug_level
		       increases  to 9,	more detailed debugging	information is

       -z	       Sends success notification to the user.

       See environ(5) for descriptions of the following	environment  variables
       that  affect the	execution of uux: LANG,	LC_ALL,	LC_CTYPE, LC_MESSAGES,
       and NLSPATH.

       The following exit values are returned:

       0	       Successful completion.

       >0	       An error	occurred.

       /etc/uucp/*		       other data and programs

       /etc/uucp/Permissions	       remote execution	permissions

       /usr/lib/uucp/*		       other programs

       /var/spool/uucp		       spool directories

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWbnuu			   |
       |Interface Stability	     |Standard			   |

       cut(1), mail(1),	uucp(1C), uuglist(1C), uustat(1C), attributes(5), env-
       iron(5),	standards(5)

       The execution of	commands on remote systems takes place in an execution
       directory known to the uucp system.

       All files required for the execution will be put	 into  this  directory
       unless  they already reside on that machine. Therefore, the simple file
       name (without path or machine reference)	must be	unique within the  uux
       request.	The following command will NOT work:

       example%	uux "a!diff b!/home/dan/xyz c!/home/dan/xyz > !xyz.diff"

       But the command:

       example%	uux "a!diff a!/home/dan/xyz c!/home/dan/xyz > !xyz.diff"

       will work (if diff is a permitted command.)

       Protected  files	 and  files that are in	protected directories that are
       owned by	the requester can be sent in commands using uux.  However,  if
       the  requester is root, and the directory is not	searchable by "other",
       the request will	fail.

       The following restrictions apply	to the	shell  pipeline	 processed  by

	 o  In	gathering  files from different	systems, pathname expansion in
	    not	performed by uux. Thus,	a request such as

		uux "c89 remsys!~/*.c"

	    would attempt to copy the file named literally *.c	to  the	 local

	 o  Only  the  first  command  of  a shell pipeline may	have a system-
	    name!. All other commands are executed on the system of the	 first

	 o  The	use of the shell metacharacter * will probably not do what you
	    want it to do.

	 o  The	shell tokens <<	and >> are not implemented.

	 o  The	redirection operators >>, <<, >|, and >& cannot	be used.

	 o  The	reserved word !	cannot be used at the head of the pipeline  to
	    modify the exit status.

	 o  Alias substitution is not performed.

SunOS 5.10			  28 Mar 1995			       uux(1C)


Want to link to this manual page? Use this URL:

home | help