unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 rdist(1)							    rdist(1)




 NAME
      rdist - remote file distribution program

 SYNOPSIS
      rdist [ -bhinqvwyMR ] [ -f distfile ] [ -d var=value ] [ -m host ]
      [ label... ]

      rdist [ -bhinqvwyMR ] -c name...	[ login@]host[:dest ]

 DESCRIPTION
      rdist facilitates the maintaining of identical copies  of	 files	over
      multiple	hosts. It preserves the owner, group, mode, and modification
      time of files if possible and can update programs that are executing.

      -f distfile Specify a distfile for rdist to execute. distfile contains
		  a sequence of entries that specify the files to be copied,
		  the destination hosts, and what operations to	 perform  to
		  do  the  updating.  The format of distfile is described in
		  detail later.	 If distfile is -,  the	 standard  input  is
		  used.	 If no -f option is present, the program looks first
		  for a file called distfile, then  Distfile  in  the  local
		  host's working directory to use as the input.

      -d var=value
		  Define var to have value.  The -d option is used to define
		  variable  definitions	 in  the  distfile.  value can be an
		  empty string, one name, or a list  of	 name  separated  by
		  tabs	and/or spaces and enclosed by a pair of parentheses.
		  However, if the variable specified is already	 defined  in
		  the  distfile,  the  -d  option has no effect (because the
		  distfile overrides the -d option).

      -m host	  Limit which machines	are  to	 be  updated.	Multiple  -m
		  arguments  can  be  given  to limit updates to a subset of
		  hosts that are listed in the distfile.

      label	  Label of a command to execute. The label must	 be  defined
		  in distfile.

      -c name...  The -c option forces	rdist  to  interpret  the  remaining
		  arguments as a small distfile.  The equivalent distfile is
		  as follows.

		       ( name ... ) -> [login@]host
				install	 [dest] ;

      -n	  Print the commands without executing them. This option  is
		  useful for debugging distfile.

      -q	  Quiet mode. Files that are  being  modified  are  normally
		  printed on standard output. The -q option suppresses this.



 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000






 rdist(1)							    rdist(1)




      -R	  Remove extraneous files. If a directory is being  updated,
		  any  files that exist on the remote host that do not exist
		  in the master directory are removed.	This is	 useful	 for
		  maintaining truly identical copies of directories.

      -h	  Follow symbolic links. Copy the file that the link  points
		  to rather than the link itself.

      -i	  Ignore unresolved  links.   rdist  will  normally  try  to
		  maintain the link structure of files being transferred and
		  warn the user if it cannot find all the links.

      -v	  Verify that the files are up to date on all the hosts. Any
		  files	 that are out of date will be displayed but no files
		  will be changed nor any mail sent.

      -w	  Whole mode.  The  whole  file	 name  is  appended  to	 the
		  destination	directory  name.  Normally,  only  the	last
		  component of a name is used  when  renaming  files.	This
		  will	preserve  the directory structure of the files being
		  copied instead of flattening the directory structure.	 For
		  example,  renaming  a	 list  of  files  such	as ( dir1/f1
		  dir2/f2 ) to dir3  would  create  files  dir3/dir1/f1	 and
		  dir3/dir2/f2 instead of dir3/f1 and dir3/f2.

      -y	  Younger mode. Files are normally updated  if	their  mtime
		  and  size  (see  stat(2))  disagree.	The -y option causes
		  rdist not to update files that are younger than the master
		  copy.	  This	can be used to prevent newer copies on other
		  hosts from being replaced.  A warning message	 is  printed
		  for files which are newer than the master copy.

      -b	  Binary comparison. Perform a binary comparison and  update
		  files	 if  they  differ  rather  than	 comparing dates and
		  sizes.

      -M	  Check that mode, ownership, and  group  are  the  same  in
		  addition  to	any  other  form  of  comparison  that is in
		  effect.  This option will cause files to be  replaced	 but
		  will only correct the problem with a directory and print a
		  warning message.

      The distfile used by rdist contains a sequence of entries that specify
      the  files to be copied, the destination hosts, and what operations to
      perform to do the updating.  Each	 entry	has  one  of  the  following
      formats.

	   variable_name = name_list
	   [label:] source_list ->  destination_list  command_list
	   [label:] source_list ::  time_stamp_file  command_list




 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000






 rdist(1)							    rdist(1)




      The first format is used for defining variables.	The second format is
      used  for distributing files to other hosts.  The third format is used
      for making lists of files on the local host  that	 have  been  changed
      since some given date.  (See EXAMPLES.)

      variable_name
		Specify the name of a variable.

      name_list List of names (such as list of	hosts  or  lists  of  files)
		separated by tabs and/or spaces and enclosed by parentheses.

      source_list
		Specify a list of files and/or directories on the local host
		to  be	used as the master copy for distribution.  Each file
		in the source_list is added to a list for  changes,  if	 the
		file  is  out  of  date	 on  the  host that is being updated
		(second format), or if the file is newer than the time stamp
		file (third format).  source_list may contain a single name,
		or multiple  names  separated  by  tabs	 and/or	 spaces	 and
		enclosed by parentheses.

      destination_list
		List of hosts  to  which  these	 files	are  to	 be  copied.
		destination_list  may  contain	a  single  name, or multiple
		names separated	 by  tabs  and/or  spaces  and	enclosed  by
		parentheses.

      time_stamp_file
		Specify a given date to generate a  list  of  files  on	 the
		local host that were modified since that date.

      label:	Labels are optional. They are used to identify a command for
		partial updates.

      command_list
		Specifies a list of commands to be performed.

		The command list consists of zero or more  commands  of	 the
		following format.

		     install  [ options ] opt_dest_name;
		     notify name_list;
		     except name_list;
		     except_pat pattern_list;
		     special  name_list	  string;

		The install command is used to copy out-of-date files and/or
		directories.  Each source file is copied to each host in the
		destination list.  Directories are recursively copied in the
		same  way.  opt_dest_name is an optional parameter to rename
		files.	If no install command appears in the command list or



 Hewlett-Packard Company	    - 3 -   HP-UX Release 11i: November 2000






 rdist(1)							    rdist(1)




		the  destination name is not specified, source_list is used.
		Directories in the path name will be created if they do	 not
		exist  on  the	remote	host.	To help prevent disasters, a
		non-empty directory on a target will never be replaced	with
		a  regular  file  or a symbolic link.  However, under the -R
		option	a  non-empty  directory	 will  be  removed  if	 the
		corresponding  filename	 is  completely absent on the master
		host.  The options are -b,-h,-i, -v,-w,-y, -M, and  -R,	 and
		have  the  same	 semantics  as	options on the command line,
		except that they only apply to the files  in  the  specified
		source_list.  The login name used on the destination host is
		the same as on the local host, unless the  destination	name
		is of the form "login@host".

		The notify command is used to mail the list of files updated
		(and any errors that may have occurred) to the listed names,
		in name_list.  If no @ appears in the name, the	 destination
		host  is appended to the name (e.g., name1@host, name2@host,
		...).

		The except command is used to update all of the files in the
		source list, except for the files listed in name_list.	This
		is usually used to copy everything  in	a  directory  except
		certain files.

		The except_pat command is like	the  except  command  except
		that  pattern_list  is	a  list	 of regular expressions (see
		ed(1) for details).  If one of	the  patterns  matches	some
		string	within a file name, that file will be ignored.	Note
		that since the backslash (\) is a quote character,  it	must
		be  doubled  to	 become	 part  of  the	regular	 expression.
		Variables are expanded in pattern_list but  not	 shell	file
		pattern	 matching  characters.	 To  include a $, it must be
		escaped with the backslash.

		The special command is used to specify sh(1)  commands	that
		are  to	 be  executed  on  the remote host after the file in
		name_list is updated or	 installed.   If  the  name_list  is
		omitted	 then  the shell commands will be executed for every
		file updated or installed.  The shell variable `FILE' is set
		to  the	 current  filename  before executing the commands in
		string.	 string starts and ends with double quotes  (")	 and
		can  cross multiple lines in distfile.	Multiple commands to
		the shell should be separated by semi-colons (;).   Commands
		are  executed in the user's home directory on the host being
		updated.  The special command can be used, for	example,  to
		rebuild	 private databases after a program has been updated.
		Shell variables cannot be used in the command because  there
		is no escape mechanism for the $ character.





 Hewlett-Packard Company	    - 4 -   HP-UX Release 11i: November 2000






 rdist(1)							    rdist(1)




      Newlines, tabs, and  blanks  are	only  used  as	separators  and	 are
      otherwise ignored. Comments begin with # and end with a newline.

      A generalized way of dynamically building variable lists	is  provided
      by  using	 a  backquote  syntax  much  like  the	shell.	In this way,
      arbitrary commands that generate stdout with space-separated words may
      be  used	to  build  the	list  (see  the	 use  of  cat command in the
      examples).

      Variables to be expanded begin with $ followed by	 the  variable	name
      enclosed in curly braces.

      The shell meta-characters [, ], {, }, *,	and  ?	are  recognized	 and
      expanded (on the local host only) in the same way as csh(1).  They can
      be escaped with a backslash.  The ~ character is also expanded in	 the
      same  way	 as  csh  but  is  expanded  separately	 on  the  local	 and
      destination hosts.  When the -w option is used with a file  name	that
      begins with ~, everything except the home directory is appended to the
      destination name.	 File names which do not begin with / or ~  use	 the
      destination  user's  home directory as the root directory for the rest
      of the file name.

 EXAMPLES
      The following is a small example.
	   HOSTS = ( matisse root@arpa )

	   FILES = ( /usr/lib /usr/bin /usr/local/games
		/usr/include/{*.h,{sys,rpc*,arpa}/*.h}
		/usr/man/man? `cat ./std-files` )

	   EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
		sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont )

	   ${FILES} -> ${HOSTS}
		install -R ;
		except /usr/lib/${EXLIB} ;
		except /usr/local/games/lib ;
		special /usr/sbin/sendmail " /usr/sbin/sendmail -bz" ;

	   srcs:
	   /usr/local/src -> arpa
		except_pat ( \\.o$ /SCCS\$ ) ;

	   IMAGEN = (ips dviimp catdvi)

	   imagen:
	   /usr/local/${IMAGEN} -> arpa
		install /usr/local/lib ;
		notify ralph ;

	   ${FILES} :: stamp.cory



 Hewlett-Packard Company	    - 5 -   HP-UX Release 11i: November 2000






 rdist(1)							    rdist(1)




		notify root@cory ;

 AUTHOR
      rdist was developed by the University of California, Berkeley.

 FILES
      distfile			    Input command file.
      /tmp/rdist*		    Temporary file for update lists.

 HISTORY
      rdist appeared in the 4.3 Berkeley Software Distribution.

 SEE ALSO
      sh(1), csh(1), stat(2)

 DIAGNOSTICS
      A complaint about mismatch of rdist version numbers may mean  that  an
      executable rdist is not in the shell's path on the remote system.

 BUGS
      Source files must reside on the local host where rdist is executed.

      There is no easy way to have a  special  command	executed  after	 all
      files in a directory have been updated.

      Variable expansion only works  for  name	lists  and  in	the  special
      command string;  there should be a general macro facility.

      rdist aborts on files that have a negative mtime (before Jan 1, 1970).

      rdist does carry the atime when installing a file but will preserve it
      on an updated file.

      There should be a `force' option to  allow  replacement  of  non-empty
      directories by regular files or symlinks.



















 Hewlett-Packard Company	    - 6 -   HP-UX Release 11i: November 2000