Mention how the daemon handles a failure to open a user-specified
[rsync/rsync.git] / rsyncd.conf.yo
index ca0954c..47e47ae 100644 (file)
@@ -1,5 +1,5 @@
 mailto(rsync-bugs@samba.org)
-manpage(rsyncd.conf)(5)(30 Sep 2004)()()
+manpage(rsyncd.conf)(5)(30 Mar 2005)()()
 manpagename(rsyncd.conf)(configuration file for rsync server)
 manpagesynopsis()
 
@@ -90,7 +90,10 @@ is no motd file.
 dit(bf(log file)) The "log file" option tells the rsync daemon to log
 messages to that file rather than using syslog. This is particularly
 useful on systems (such as AIX) where syslog() doesn't work for
-chrooted programs.
+chrooted programs.  If the daemon fails to open to specified file, it
+will fall back to using syslog and output an error about the failure.
+(Note that a failure to open the specified log file used to be a fatal
+error.)
 
 dit(bf(pid file)) The "pid file" option tells the rsync daemon to write
 its process ID to that file.
@@ -156,9 +159,14 @@ Note that you are free to setup user/group information in the chroot area
 differently from your normal system.  For example, you could abbreviate
 the list of users and groups.  Also, you can protect this information from
 being downloaded/uploaded by adding an exclude rule to the rsync.conf file
-(e.g. "exclude = /etc/").  Note that having the exclusion affect uploads
+(e.g. "exclude = /etc/**").  Note that having the exclusion affect uploads
 is a relatively new feature in rsync, so make sure your server is running
-at least 2.6.3 to effect this.
+at least 2.6.3 to effect this.  Also note that it is safest to exclude a
+directory and all its contents combining the rule "/some/dir/" with the
+rule "/some/dir/**" just to be sure that rsync will not allow deeper
+access to some of the excluded files inside the directory (rsync tries to
+do this automatically, but you might as well specify both to be extra
+sure).
 
 dit(bf(port)) You can override the default port the daemon will listen on
 by specifying this value (defaults to 873).  This is ignored if the daemon
@@ -360,25 +368,37 @@ directories, and the sysadmin doesn't want those files to be seen at all.
 
 dit(bf(transfer logging)) The "transfer logging" option enables per-file 
 logging of downloads and uploads in a format somewhat similar to that
-used by ftp daemons. If you want to customize the log formats look at
-the log format option.
+used by ftp daemons.  The server always logs the transfer at the end, so
+if a transfer is aborted, no mention will be made in the log file.
+
+If you want to customize the log lines, see the "log format" option.
 
 dit(bf(log format)) The "log format" option allows you to specify the
-format used for logging file transfers when transfer logging is
-enabled. The format is a text string containing embedded single
-character escape sequences prefixed with a percent (%) character.
+format used for logging file transfers when transfer logging is enabled.
+The format is a text string containing embedded single-character escape
+sequences prefixed with a percent (%) character.  An optional numeric
+field width may also be specified between the percent and the escape
+letter (e.g. "%-50n %8l %07p").
+
+The default log format is "%o %h [%a] %m (%u) %f %l", and a "%t [%p] "
+is always prefixed when using the "log file" option.
+(A perl script that will summarize this default log format is included
+in the rsync source code distribution in the "support" subdirectory:
+rsyncstats.)
 
-The prefixes that are understood are:
+The single-character escapes that are understood are as follows:
 
 quote(itemize(
   it() %h for the remote host name
   it() %a for the remote IP address
   it() %l for the length of the file in bytes
   it() %p for the process ID of this rsync session
-  it() %o for the operation, which is either "send" or "recv"
-  it() %f for the filename (long form)
-  it() %n for the filename (short form)
-  it() %L either the string " -> SYMLINK" or "" if not a symlink
+  it() %o for the operation, which is "send", "recv", or "del."
+  (the latter includes the trailing period)
+  it() %f for the filename (long form on sender; no trailing "/")
+  it() %n for the filename (short form; trailing "/" on dir)
+  it() %L either the string " -> SYMLINK", or " => HARDLINK" or an
+  empty string (where bf(SYMLINK) or bf(HARDLINK) is a filename)
   it() %P for the module path
   it() %m for the module name
   it() %t for the current date time
@@ -389,44 +409,12 @@ quote(itemize(
   it() %i an itemized list of what is being updated
 ))
 
-The default log format is "%o %h [%a] %m (%u) %l %f%L", and a "%t [%p] "
-is always prefixed when using the "log file" option.
-
-A perl script called rsyncstats to summarize this format is included
-in the rsync source code distribution.
-
-The %i format is a set of cryptic characters that are output as follows:
+For a list of what the characters mean that are output by "%i", see the
+bf(--itemize-changes) option in the rsync manpage.
 
-quote(tt(  *Xcstpog ITEM_NAME))
-
-The bf(*) is either bf(<) (receive), bf(>) (send), or bf(*) (--dry-run) if
-the item is being updated, otherwise it is a space.
-
-The bf(X) will be replaced by one of the following: an "f" for a file, a
-"d" for a dir, an "L" for a symlink, or a "D" for a device.
-
-The rest of the letters in the string above are the actual letters that
-will be output if the associated attribute for the item is being updated;
-otherwise the letter will be replaced by either a "." for no change, a "+"
-for a new item, or a "?" if the attribute is not known (which happens when
-talking to an older rsync).  The meanings of the attribute letters are as
-follows:
-
-quote(itemize(
-  it() A bf(c) means the checksum of the file is different and will be
-  updated by the file transfer (requries bf(--checksum)).
-  it() A bf(s) means the size of the file is different and will be updated
-  by the file transfer.
-  it() A bf(t) means the modified time is being updated to the server's
-  value (requires --times).  An alternate value of bf(T) means that the
-  time is being set to the transfer time, which happens when symlinks are
-  updated, or when a file or device is updated without --times.
-  it() A bf(p) means the permissions are being updated (requires
-  bf(--perms)).
-  it() An bf(o) means the owner is being updated (requires bf(--owner) and
-  root privileges).
-  it() A bf(g) means the group is being updated (requires bf(--group)).
-))
+Note that some of the logged output changes when talking with older
+rsync versions.  For instance, deleted files were only output as verbose
+messages prior to rsync 2.6.4.
 
 dit(bf(timeout)) The "timeout" option allows you to override the
 clients choice for I/O timeout for this module. Using this option you
@@ -447,6 +435,10 @@ quote(tt(    refuse options = c delete))
 
 The reason the above refuses all delete options is that the options imply
 bf(--delete), and implied options are refused just like explicit options.
+As an additional safety feature, the refusal of "delete" also refuses
+bf(remove-sent-files) when the daemon is the sender; if you want the latter
+without the former, instead refuse "delete-*" -- that refuses all the
+delete modes without affecting bf(--remove-sent-files).
 
 When an option is refused, the server prints an error message and exits.
 To prevent all compression, you can use "dont compress = *" (see below)