 |
Index for Section 1 |
|
 |
Alphabetical listing for R |
|
 |
Bottom of page |
|
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
variable 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
structure 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
directories.
-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.
Normally, 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
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> '::' <timestamp_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 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
character 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 <option ...> <destination_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 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
patterns 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
program 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)
 |
Index for Section 1 |
|
 |
Alphabetical listing for R |
|
 |
Top of page |
|