unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



rdist(1)							     rdist(1)



NAME

  rdist	- Maintains identical copies of	files on multiple hosts

SYNOPSIS

  rdist	[-bDhinqRvwy] [-f distfile | -]	[-d variable=value] [-m	host]
  [file...]

  rdist	[-bhinqRvwy] -csource... [login@]host[:dest]

  The rdist command maintains identical	copies of files	on multiple hosts.

OPTIONS

  -b  Performs a binary	comparison; updates files if they differ.

  -c source ...
      Forces rdist to interpret	the remaining arguments	as the sources of
      small distfiles in the following format:


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

      The rest of the command line is treated as if it came from a distfile.
      If you want to specify an	IPv6 address for host, you must	prefix the
      address with the \[ (backslash, left bracket) characters and terminate
      the address with the \] (backslash, right	bracket) characters.

  -d variable=value
      Defines variable to have value.  This option defines or overrides	vari-
      able definitions in the distfile.	 The value can be the empty string,
      one name,	or a list of names surrounded by parentheses and separated by
      tabs or spaces, or both.

  -D  Turns on debugging output.

  -f distfile |	-
      Specifies	another	name for distfile; specify - for standard input.

  -h  Copies the file that the link points to rather than the link itself.

  -i  Ignores unresolved links.	 The rdist command maintains the link struc-
      ture of files being transferred and warns	users if it cannot find	all
      the links.

  -m host
      Limits which machines are	to be updated.	You can	use multiple host
      arguments	to limit updates to a subset of	the hosts listed in distfile.
      You can also specify an IPv6 address or addresses	for host.

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

  -q  Operates in quiet	mode.  This option suppresses printing of modified
      file on standard output.

  -R  Removes 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 identical copies of direc-
      tories.

  -v  Verifies that the	files are up to	date on	all the	hosts. Any files that
      are out of date will be displayed, but rdist does	not change any files
      or send any mail.

  -w  Appends the whole	filename to the	destination directory name.  Nor-
      mally, rdist uses	only the last component	of a name for renaming files,
      preserving the directory structure of the	copied files.

  -y  Prevents recent copies of	files from being replaced by files that	are
      not as recent.  Files are	normally updated when their time stamp and
      size (see	stat())	differ.	The -y option  prevents	rdist from updating
      files younger than the master file.

DESCRIPTION

  The rdist command preserves the owner, group,	mode, and modification time
  of files if possible.	It can also update programs that are executing.	The
  rdist	command	reads commands from distfile in	your $HOME directory and
  directs the updating of files	or directories,	or both. If distfile is	a -
  (dash), standard input is used.

  If no	-f option is specified,	the program looks first	for distfile, then
  Distfile to use as the input.	If no filenames	are specified on the command
  line,	rdist updates all of the files and directories listed in distfile.
  Otherwise, the argument is read as the name of a file	to be updated or a
  command to execute. If the name of the file specified	by the file argument
  is the same as the name of a command,	the rdist command treats the filename
  as a command.

  The file specified by	distfile contains a sequence of	entries	that specify
  the files to be copied, the destination hosts, and what operations to	per-
  form to do the updating. Each	entry has one of the following formats.

       <variable_name>&gt; '=' <&lt;name_list>&gt;

       [label:]	<&lt;source_list>&gt; '->&gt;' <&lt;destination_list>&gt; <&lt;command_list>&gt;

       [label:]	<&lt;source_list>&gt; '::' <&lt;timestamp_file>&gt; <&lt;command_list>&gt;

  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 that were changed since some given date.

  The source_list specifies a list of files or directories, or both, on	the
  local	host that is to	be used	as the master copy for distribution. The
  destination_list is the list of hosts	to which these files are to be
  copied.  Each	file in	the source list	is added to a list of changes if the
  file is out of date on the host that is being	updated	(second	format)	or
  the file is newer than timestamp_file	(third format).

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

  Newlines, tabs, and spaces are only used as separators and are otherwise
  ignored. Comments begin with a # (number sign) and end with a	newline.

  Variables to be expanded begin with a	$ (dollar sign)	followed by one	char-
  acter	or a name enclosed in {	} (braces) (see	EXAMPLES).

  Each line of the source and destination lists	contains zero or more names,
  separated by spaces. The shell metacharacters	[, ], {, }, *, and ? are
  recognized and expanded (on the local	host only) as with csh.	 They can be
  escaped with a \ (backslash).	The ~ (tilde) character	is also	expanded as
  with csh, but	is expanded separately on the local and	destination hosts.
  When the -w option is	used with a filename that begins with ~, everything
  except the home directory is appended	to the destination name. Filenames
  that do not begin with a / (slash) or	a ~ (tilde) use	the destination
  user's home directory	as the root directory for the rest of the filename.

  If you want to specify an IPv6 address or addresses for destination_list,
  you must enclose each	address	with the [ ] (bracket) characters.

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

       install <&lt;option ...>&gt; <&lt;destination_name>&gt;
       notify <&lt;name_list>&gt;
       except <&lt;name_list>&gt;
       except_pat <&lt;pattern_list>&gt;
       special <&lt;name_list>&gt; string

  The install command is used to copy out of date files	or directories,	or
  both.	Each source file is copied to each host	in the destination list.
  Directories are recursively copied in	the same way. The destination_name is
  an optional argument to rename files.	If no install command appears in the
  command list or the destination name is not specified, the source filename
  is used.

  Directories in the pathname are created if they do not exist on the remote
  host.	To help	prevent	disasters, a nonempty directory	on a target host will
  never	be replaced with a regular file	or a symbolic link. However, under
  the -R option, a nonempty directory is removed if the	corresponding
  filename is completely absent	on the master host.

  Options for install are -R, -h, -i, -v, -w, -y, and -b and have the same
  semantics as options on the command line, except they	only apply to the
  files	in the source list.  The username used on the destination host is the
  same as the local host unless	the destination	name is	of the format
  user@host.

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

  The except command is	used to	update all of the files	in the source list
  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	grep for details). If one of the pat-
  terns	matches	some string within a filename, that file is ignored.  Note
  that since \ (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	$ (dollar
  sign), it must be escaped with \ (backslash).

  The special command is used to specify sh 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, the	shell commands are executed for	every file
  updated or installed.	 The FILE shell	variable is set	to the current
  filename before executing the	commands in string. The	string starts and
  ends with a "	(double	quote) and can cross multiple lines in distfile.
  Separate multiple commands to	the shell with a ; (semicolon).	Commands are
  executed in your home	directory on the host being updated.  The special
  command can be used to rebuild private databases and so forth	after a	pro-
  gram is updated.


  If you run the rdist command as a normal user	and any	of the target hosts
  does not allow normal	users to run rdist, updates to that host will fail
  with the following error message:

       rdist:  connection failed:  version numbers don't match

EXAMPLES

  The following	is a small example of a	distfile:

       HOSTS = ( matisse root@arpa)
       FILES = ( /bin /lib /usr/bin /usr/games
	       /usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
	       /usr/lib	/usr/man/man? /usr/ucb /usr/local/rdist	)
       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/games/lib ;
	       special /usr/sbin/sendmail "/usr/sbin/sendmail -bz" ;
       srcs:
       /usr/src/bin -> arpa
	       except_pat ( \\.o\$ /SCCS\$ ) ;
       IMAGEN =	(ips dviimp catdvi)
       imagen:
       /usr/local/${IMAGEN} -> arpa
	       install /usr/local/lib ;
	       notify ralph ;
       ${FILES}	:: stamp.cory
	       notify root@cory	;

FILES

  $HOME/distfile
      Contains a list of commands to be	read by	rdist.

  /tmp/rdist*
      Contains update lists temporarily.

DIAGNOSTICS

  A complaint about mismatch of	rdist version numbers may really stem from
  some problem with starting your shell; for example, you are in too many
  groups.

SEE ALSO

  Commands:  csh(1), grep(1), ksh(1), nrdist(1), sh(1)