rsync is useful when large amounts of data need to be
transmitted regularly while not changing too much. This is, for
example, often the case when creating backups. Another application
concerns staging servers. These are servers that store complete
directory trees of Web servers that are regularly mirrored onto a Web
server in a DMZ.
40.6.1 Configuration and Operation
rsync can be operated in two different modes. It can be used
to archive or copy data. To accomplish this, only a remote shell,
like ssh, is required on the target system. However, rsync can also
be used as a daemon to provide directories
to the network.
The basic mode of operation of rsync does not require any
special configuration. rsync directly allows mirroring complete
directories onto another system. As an example, the following
command creates a backup of the home directory of tux
on a backup server named sun:
rsync -baz -e ssh /home/tux/ tux@sun:backup
The following command is used to play the directory back:
rsync -az -e ssh tux@sun:backup /home/tux/
Up to this point, the handling does not differ much from that
of a regular copying tool, like scp.
rsync should be operated in rsync
mode to make
all its features fully available. This is done by starting the
rsyncd daemon on one of the systems. Configure it in the file
/etc/rsyncd.conf. For example, to make the
directory /srv/ftp available with rsync, use
the following configuration:
gid = nobody
uid = nobody
read only = true
use chroot = no
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
[FTP]
path = /srv/ftp
comment = An Example
Then start rsyncd with
rcrsyncd start. rsyncd
can also be started automatically during the boot process. Set this
up by activating this service in the runlevel editor provided by
YaST or by manually entering the command
insserv rsyncd. rsyncd
can alternatively be started by xinetd. This is, however, only
recommended for servers that rarely use rsyncd.
The example also creates a log file listing all connections.
This file is stored in /var/log/rsyncd.log.
It is then possible to test the transfer from a client system.
Do this with the following command:
rsync -avz sun::FTP
This command lists all files present in the directory
/srv/ftp of the server. This request is also
logged in the log file /var/log/rsyncd.log. To
start an actual transfer, provide a target directory. Use
. for the current directory. For example:
rsync -avz sun::FTP .
By default, no files are deleted while synchronizing with
rsync. If this should be forced, the additional option
--delete must be stated. To ensure that no newer
files are deleted, the option --update can be used
instead. Any conflicts that arise must be resolved manually.