Document new --append option.
[rsync/rsync.git] / rsync.yo
index 933d154..01a512a 100644 (file)
--- a/rsync.yo
+++ b/rsync.yo
@@ -1,5 +1,5 @@
 mailto(rsync-bugs@samba.org)
-manpage(rsync)(1)(10 May 2005)()()
+manpage(rsync)(1)(7 Jul 2005)()()
 manpagename(rsync)(faster, flexible replacement for rcp)
 manpagesynopsis()
 
@@ -53,7 +53,9 @@ rsync daemon directly via TCP.  The remote-shell transport is used whenever
 the source or destination path contains a single colon (:) separator after
 a host specification.  Contacting an rsync daemon directly happens when the
 source or destination path contains a double colon (::) separator after a
-host specification, OR when an rsync:// URL is specified.
+host specification, OR when an rsync:// URL is specified (see also the
+"CONNECTING TO AN RSYNC DAEMON OVER A REMOTE SHELL PROGRAM" section for
+an exception to this latter rule).
 
 As a special case, if a remote source is specified without a destination,
 the remote files are listed in an output format similar to "ls -l".
@@ -61,17 +63,6 @@ the remote files are listed in an output format similar to "ls -l".
 As expected, if neither the source or destination path specify a remote
 host, the copy occurs locally (see also the bf(--list-only) option).
 
-Finally, it is possible to use a remote-shell transport to contact a remote
-host and then to spawn a single-use rsync daemon.  This allows the use of
-some of the daemon features (such as named modules) without having to run a
-daemon as a service.  To achieve this, invoke rsync with an explicit
-bf(--rsh=COMMAND) (aka "bf(-e COMMAND)") option combined with either the
-source or destination path specified as an rsync daemon (i.e. either a ::
-separator or an rsync:// URL).  In this case, rsync contacts the remote
-host specified using the specified remote shell, and then starts a
-single-use rsync daemon to deal with that copy request.  See the section
-"CONNECTING TO AN RSYNC DAEMON OVER A REMOTE SHELL PROGRAM" below.
-
 manpagesection(SETUP)
 
 See the file README for installation instructions.
@@ -242,10 +233,8 @@ manpagesection(RUNNING AN RSYNC DAEMON)
 
 An rsync daemon is configured using a configuration file.  Please see the
 rsyncd.conf(5) man page for more information.  By default the configuration
-file is called /etc/rsyncd.conf, unless rsync is running over a remote
-shell program and is not running as root; in that case, the default name
-is rsyncd.conf in the current directory on the remote computer
-(typically $HOME).
+file is called /etc/rsyncd.conf (unless the daemon is spawned via a remote
+shell--see below).
 
 manpagesection(RUNNING AN RSYNC DAEMON OVER A REMOTE SHELL PROGRAM)
 
@@ -253,7 +242,7 @@ See the rsyncd.conf(5) man page for full information on the rsync
 daemon configuration file.
 
 Several configuration options will not be available unless the remote
-user is root (e.g. chroot, setuid/setgid, etc.).  There is no need to
+user is root (e.g. chroot, uid, gid, etc.).  There is no need to
 configure inetd or the services map to include the rsync daemon port
 if you run an rsync daemon only via a remote shell program.
 
@@ -309,6 +298,7 @@ to the detailed description below for a complete description.  verb(
      --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
  -u, --update                skip files that are newer on the receiver
      --inplace               update destination files in-place
+     --append                append data onto shorter files
  -d, --dirs                  transfer directories without recursing
  -l, --links                 copy symlinks as symlinks
  -L, --copy-links            transform symlink into referent file/dir
@@ -568,6 +558,14 @@ should not use this option to update files that are in use.  Also note that
 rsync will be unable to update a file in-place that is not writable by the
 receiving user.
 
+dit(bf(--append)) This causes rsync to update a file by appending data onto
+the end of the file, which presumes that the data that already exists on
+the receiving side is identical with the start of the file on the sending
+side.  If that is not true, the file will fail the checksum test, and the
+resend will do a normal bf(--inplace) update to correct the mismatch.  Any
+file on the receiving side that is longer than a file on the sending side
+is skipped.  Implies bf(--inplace).
+
 dit(bf(-d, --dirs)) Tell the sending side to include any directories that
 are encountered.  Unlike bf(--recursive), a directory's contents are not copied
 unless the directory was specified on the command-line as either "." or a
@@ -909,9 +907,14 @@ command:
 quote(tt(   rsync -a --files-from=/tmp/foo /usr remote:/backup))
 
 If /tmp/foo contains the string "bin" (or even "/bin"), the /usr/bin
-directory will be created as /backup/bin on the remote host (but the
-contents of the /usr/bin dir would not be sent unless you specified bf(-r)
-or the names were explicitly listed in /tmp/foo).  Also keep in mind
+directory will be created as /backup/bin on the remote host.  If it
+contains "bin/" (note the trailing slash), the immediate contents of
+the directory would also be sent (without needing to be explicitly
+mentioned in the file -- this began in version 2.6.4).  In both cases,
+if the bf(-r) option was enabled, that dir's entire hierarchy would
+also be transferred (keep in mind that bf(-r) needs to be specified
+explicitly with bf(--files-from), since it is not implied by bf(-a)).
+Also note
 that the effect of the (enabled by default) bf(--relative) option is to
 duplicate only the path info that is read from the file -- it does not
 force the duplication of the source-spec path (/usr in this case).
@@ -1949,12 +1952,31 @@ ensure the rsync module they copy does not include symbolic links to
 bf(/etc/passwd) in the public section of the site.  Using
 bf(--copy-unsafe-links) will cause any links to be copied as the file
 they point to on the destination.  Using bf(--safe-links) will cause
-unsafe links to be omitted altogether.
+unsafe links to be omitted altogether.  (Note that you must specify
+bf(--links) for bf(--safe-links) to have any effect.)
 
 Symbolic links are considered unsafe if they are absolute symlinks
 (start with bf(/)), empty, or if they contain enough bf("..")
 components to ascend from the directory being copied.
 
+Here's a summary of how the symlink options are interpreted.  The list is
+in order of precedence, so if your combination of options isn't mentioned,
+use the first line that is a complete subset of your options:
+
+dit(bf(--copy-links)) Turn all symlinks into normal files (leaving no
+symlinks for any other options to affect).
+
+dit(bf(--links --copy-unsafe-links)) Turn all unsafe symlinks into files
+and duplicate all safe symlinks.
+
+dit(bf(--copy-unsafe-links)) Turn all unsafe symlinks into files, noisily
+skip all safe symlinks.
+
+dit(bf(--links --safe-links))  Duplicate safe symlinks and skip unsafe
+ones.
+
+dit(bf(--links)) Duplicate all symlinks.
+
 manpagediagnostics()
 
 rsync occasionally produces error messages that may seem a little
@@ -2056,7 +2078,7 @@ url(http://rsync.samba.org/)(http://rsync.samba.org/)
 
 manpagesection(VERSION)
 
-This man page is current for version 2.6.5pre1 of rsync.
+This man page is current for version 2.6.6pre1 of rsync.
 
 manpagesection(CREDITS)