mailto(rsync-bugs@samba.org)
-manpage(rsyncd.conf)(5)(30 Sep 2004)()()
+manpage(rsyncd.conf)(5)(28 Feb 2005)()()
manpagename(rsyncd.conf)(configuration file for rsync server)
manpagesynopsis()
name of the module in square brackets and continues until the next
module begins. Modules contain parameters of the form 'name = value'.
-The file is line-based - that is, each newline-terminated line represents
+The file is line-based -- that is, each newline-terminated line represents
either a comment, a module name or a parameter.
Only the first equals sign in a parameter is significant. Whitespace before
manpagesection(LAUNCHING THE RSYNC DAEMON)
-The rsync daemon is launched by specifying the --daemon option to
+The rsync daemon is launched by specifying the bf(--daemon) option to
rsync.
The daemon must run with root privileges if you wish to use chroot, to
You can launch it either via inetd, as a stand-alone daemon, or from
an rsync client via a remote shell. If run as a stand-alone daemon then
-just run the command "rsync --daemon" from a suitable startup script.
+just run the command "bf(rsync --daemon)" from a suitable startup script.
If run from an rsync client via a remote shell (by specifying both the
-"-e/--rsh" option and server mode with "::" or "rsync://"), the --daemon
+bf(--rsh) (bf(-e)) option and server mode with "::" or "rsync://"), the bf(--daemon)
option is automatically passed to the remote side.
When run via inetd you should add a line like this to /etc/services:
-quote(rsync 873/tcp)
+verb( rsync 873/tcp)
and a single line something like this to /etc/inetd.conf:
-quote(rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon)
+verb( rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon)
Replace "/usr/bin/rsync" with the path to where you have rsync installed on
your system. You will then need to send inetd a HUP signal to tell it to
(see below). When "use chroot" is false, for security reasons,
symlinks may only be relative paths pointing to other files within the root
path, and leading slashes are removed from most absolute paths (options
-such as --backup-dir, --compare-dest, etc. interpret an absolute path as
+such as bf(--backup-dir), bf(--compare-dest), etc. interpret an absolute path as
rooted in the module's "path" dir, just as if chroot was specified).
The default for "use chroot" is true.
process in the chroot namespace will need to have access to the resources
used by these library functions (traditionally /etc/passwd and
/etc/group). If these resources are not available, rsync will only be
-able to copy the IDs, just as if the --numeric-ids option had been
+able to copy the IDs, just as if the bf(--numeric-ids) option had been
specified.
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
-is being run by inetd, and is superseded by the --port command-line option.
+is being run by inetd, and is superseded by the bf(--port) command-line option.
dit(bf(address)) You can override the default IP address the daemon
will listen on by specifying this value. This is ignored if the daemon is
-being run by inetd, and is superseded by the --address command-line option.
+being run by inetd, and is superseded by the bf(--address) command-line option.
dit(bf(max connections)) The "max connections" option allows you to
specify the maximum number of simultaneous connections you will allow.
message telling them to try later. The default is 0 which means no limit.
See also the "lock file" option.
+dit(bf(max verbosity)) The "max verbosity" option allows you to control
+the maximum amount of verbose information that you'll allow the daemon to
+generate (since the information goes into the log file). The default is 1,
+which allows the client to request one level of verbosity.
+
dit(bf(lock file)) The "lock file" option specifies the file to use to
support the "max connections" option. The rsync server uses record
locking on this file to ensure that the max connections limit is not
was run as root. This complements the "uid" option. The default is gid -2,
which is normally the group "nobody".
+dit(bf(filter)) The "filter" option allows you to specify a space-separated
+list of filter rules that the server will not allow to be read or written.
+This is only superficially equivalent to the client specifying these
+patterns with the bf(--filter) option. Only one "filter" option may be
+specified, but it may contain as many rules as you like, including
+merge-file rules. Note that per-directory merge-file rules do not provide
+as much protection as global rules, but they can be used to make bf(--delete)
+work better when a client downloads the server's files (if the per-dir
+merge files are included in the transfer).
+
dit(bf(exclude)) The "exclude" option allows you to specify a
space-separated list of patterns that the server will not allow to be read
or written. This is only superficially equivalent to the client
-specifying these patterns with the --exclude option. Only one "exclude"
+specifying these patterns with the bf(--exclude) option. Only one "exclude"
option may be specified, but you can use "-" and "+" before patterns to
specify exclude/include.
dit(bf(exclude from)) The "exclude from" option specifies a filename
on the server that contains exclude patterns, one per line.
This is only superficially equivalent
-to the client specifying the --exclude-from option with an equivalent file.
+to the client specifying the bf(--exclude-from) option with an equivalent file.
See the "exclude" option above.
dit(bf(include)) The "include" option allows you to specify a
space-separated list of patterns which rsync should not exclude. This is
only superficially equivalent to the client specifying these patterns with
-the --include option because it applies only on the server. This is
+the bf(--include) option because it applies only on the server. This is
useful as it allows you to build up quite complex exclude/include rules.
Only one "include" option may be specified, but you can use "+" and "-"
before patterns to switch include/exclude. See the "exclude" option
dit(bf(include from)) The "include from" option specifies a filename
on the server that contains include patterns, one per line. This is
only superficially equivalent to the client specifying the
---include-from option with a equivalent file.
+bf(--include-from) option with a equivalent file.
See the "exclude" option above.
dit(bf(auth users)) The "auth users" option specifies a comma and
Each pattern can be in one of five forms:
-itemize(
+quote(itemize(
it() a dotted decimal IPv4 address of the form a.b.c.d, or an IPv6 address
of the form a:b:c::d:e:f. In this case the incoming machine's IP address
must match exactly.
-
it() an address/mask in the form ipaddr/n where ipaddr is the IP address
and n is the number of one bits in the netmask. All IP addresses which
match the masked IP address will be allowed in.
-
it() an address/mask in the form ipaddr/maskaddr where ipaddr is the
IP address and maskaddr is the netmask in dotted decimal notation for IPv4,
or similar for IPv6, e.g. ffff:ffff:ffff:ffff:: instead of /64. All IP
addresses which match the masked IP address will be allowed in.
-
it() a hostname. The hostname as determined by a reverse lookup will
be matched (case insensitive) against the pattern. Only an exact
match is allowed in.
-
it() a hostname pattern using wildcards. These are matched using the
same rules as normal unix filename matching. If the pattern matches
then the client is allowed in.
-)
+))
Note IPv6 link-local addresses can have a scope in the address specification:
-quote(fe80::1%link1)
-quote(fe80::%link1/64)
-quote(fe80::%link1/ffff:ffff:ffff:ffff::)
+quote(
+tt( fe80::1%link1)nl()
+tt( fe80::%link1/64)nl()
+tt( fe80::%link1/ffff:ffff:ffff:ffff::)nl()
+)
You can also combine "hosts allow" with a separate "hosts deny"
option. If both options are specified then the "hosts allow" option s
dit(bf(ignore errors)) The "ignore errors" option tells rsyncd to
ignore I/O errors on the server when deciding whether to run the delete
-phase of the transfer. Normally rsync skips the --delete step if any
-I/O errors have occurred in order to prevent disasterous deletion due
+phase of the transfer. Normally rsync skips the bf(--delete) step if any
+I/O errors have occurred in order to prevent disastrous deletion due
to a temporary resource shortage or other I/O error. In some cases this
test is counter productive so you can use this option to turn off this
-behaviour.
+behavior.
dit(bf(ignore nonreadable)) This tells the rsync server to completely
ignore files that are not readable by the user. This is useful for
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.
-The prefixes that are understood are:
+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 single-character escapes that are understood are as follows:
-itemize(
+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
+ 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
it() %b for the number of bytes actually transferred
it() %c when sending files this gives the number of checksum bytes
received for this file
-)
+ it() %i an itemized list of what is being updated
+))
-The default log format is "%o %h [%a] %m (%u) %f %l", and a "%t [%p] "
-is always added to the beginning when using the "log file" option.
+For a list of what the characters mean that are output by "%i", see the
+bf(--itemize-changes) option in the rsync manpage.
-A perl script called rsyncstats to summarize this format is included
-in the rsync source code distribution.
+Note that some of the logged output changes when talking with older
+rsync versions. For instance, deleted files were only logged 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
be refused by your rsync server.
You may specify the full option name, its one-letter abbreviation, or a
wild-card string that matches multiple options.
-For example, this would refuse --checksum (-c) and all the options that
-start with "delete":
+For example, this would refuse bf(--checksum) (bf(-c)) and all the various
+delete options:
+
+quote(tt( refuse options = c delete))
-quote(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)
case-insensitive wildcard patterns. Any source filename matching one
of the patterns will not be compressed during transfer.
-The default setting is verb(*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz)
+The default setting is tt(*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz)
enddit()
manpagesection(RUNNING AN RSYNC SERVER OVER A REMOTE SHELL PROGRAM)
-If rsync is run with both the --daemon and --rsh (-e) options, it will
+If rsync is run with both the bf(--daemon) and bf(--rsh) (bf(-e)) options, it will
spawn an rsync daemon using a remote shell connection. Several
configuration options will not be available unless the remote user is
root (e.g. chroot, setuid/setgid, etc.). There is no need to configure
"command=em(COMMAND)" syntax in the remote user's authorized_keys entry,
where command would be
-quote(rsync --server --daemon .)
+quote(tt(rsync --server --daemon .))
NOTE: rsync's argument parsing expects the trailing ".", so make sure
that it's there. If you want to use an rsyncd.conf(5)-style
configuration file other than the default, you can added a
---config option to the em(command):
+bf(--config) option to the em(command):
-quote(rsync --server --daemon --config=em(file) .)
+quote(tt(rsync --server --daemon --config=em(file) .))
Note that the "--server" here is the internal option that rsync uses to
run the remote version of rsync that it communicates with, and thus you
-should not be using the --server option under normal circumstances.
+should not be using the bf(--server) option under normal circumstances.
manpagesection(EXAMPLES)
comment = ftp export area
)
-
A more sophisticated example would be:
-uid = nobody nl()
-gid = nobody nl()
-use chroot = no nl()
-max connections = 4 nl()
-syslog facility = local5 nl()
+verb(
+uid = nobody
+gid = nobody
+use chroot = no
+max connections = 4
+syslog facility = local5
pid file = /var/run/rsyncd.pid
-verb([ftp]
+[ftp]
path = /var/ftp/pub
comment = whole ftp area (approx 6.1 GB)
The /etc/rsyncd.secrets file would look something like this:
-tridge:mypass nl()
-susan:herpass
+quote(
+tt(tridge:mypass)nl()
+tt(susan:herpass)nl()
+)
manpagefiles()
manpageauthor()
-rsync was written by Andrew Tridgell and Paul Mackerras. They may be
-contacted via email at tridge@samba.org and
-Paul.Mackerras@cs.anu.edu.au
+rsync was written by Andrew Tridgell and Paul Mackerras.
+Many people have later contributed to it.
+Mailing lists for support and development are available at
+url(http://lists.samba.org)(lists.samba.org)