rdist man page on NeXTSTEP

Man page or keyword search:  
man Server   1419 pages
apropos Keyword Search (all sections)
Output format
NeXTSTEP logo
[printable version]


RDIST(1)							      RDIST(1)

NAME
       rdist - remote file distribution program

SYNOPSIS
       rdist  [	 -nqbRhivwy  ]	[ -f distfile ] [ -d var=value ] [ -m host ] [
       name ... ]

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

DESCRIPTION
       Rdist is a program to maintain identical copies of files over  multiple
       hosts.	It  preserves  the  owner,  group, mode, and mtime of files if
       possible and can update	programs  that	are  executing.	  Rdist	 reads
       commands	  from	distfile  to  direct  the  updating  of	 files	and/or
       directories.  If distfile is `-', the standard input is used.  If no -f
       option  is  present,  the  program  looks  first	 for  `distfile', then
       `Distfile' to use as the input.	If  no	names  are  specified  on  the
       command line, rdist will update all of the files and directories listed
       in distfile.  Otherwise, the argument is taken to be the name of a file
       to  be  updated or the label of a command to execute. If label and file
       names conflict, it is assumed  to  be  a	 label.	  These	 may  be  used
       together to update specific files using specific commands.

       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] ;

       Other options:

       -d     Define var to have value.	 The -d option is used	to  define  or
	      override variable definitions in the distfile.  Value can be the
	      empty string, one	 name,	or  a  list  of	 names	surrounded  by
	      parentheses and separated by tabs and/or spaces.

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

       -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.

       -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 all the links cannot be found.

       -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.

       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. 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>

       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 have been changed since some given date.
       The source list specifies a list of files  and/or  directories  on  the
       local  host  which  are 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 which is being  updated  (second
       format) or the file is newer than the time stamp file (third format).

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

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

       Variables  to be expanded begin with `$' followed by one character or a
       name enclosed in curly braces (see the examples at the end).

       The source and destination lists have the following format:

	    <name>
       or
	    `(' <zero or more names separated by white-space> `)'

       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.

       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 the destination name is not
       specified, the source file name 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 host 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
       `-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 login name used on the destination  host
       is  the	same  as  the local host unless the destination name is of the
       format ``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.  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 `\' 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  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 `"' and can cross  multiple	 lines
       in  distfile.   Multiple	 commands  to the shell should be separated by
       `;'.  Commands are executed in the user's home directory	 on  the  host
       being  updated.	 The  special  command	can be used to rebuild private
       databases, etc.	after a program has been updated.

       The following is a small example.

	    HOSTS = ( matisse root@arpa)

	    FILES = ( /bin /lib /usr/bin /usr/games
		       NextDeveloper/Headers/bsd/{*.h,{sys,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/lib/sendmail "/usr/lib/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
       distfile	      input command file
       /tmp/rdist*    temporary file for update lists

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

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

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; there should be a general
       macro facility.

       Rdist aborts on files which have a negative mtime (before Jan 1, 1970).

       There should be a `force' option	 to  allow  replacement	 of  non-empty
       directories  by	regular	 files	or symlinks.  A means of updating file
       modes and owners of otherwise identical files is also needed.

NeXT, Inc.			 May 13, 1986			      RDIST(1)
[top]

List of man pages available for NeXTSTEP

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net