быстрый, универсальный, удаленный (и локальный) инструмент для копирования файлов (a fast, versatile, remote (and local) file-copying tool)
CONNECTING TO AN RSYNC DAEMON
It is also possible to use rsync without a remote shell as the
transport. In this case you will directly connect to a remote
rsync daemon, typically using TCP port 873. (This obviously
requires the daemon to be running on the remote system, so refer
to the STARTING AN RSYNC DAEMON TO ACCEPT CONNECTIONS section
below for information on that.)
Using rsync in this way is the same as using it with a remote
shell except that:
o you either use a double colon :: instead of a single colon
to separate the hostname from the path, or you use an
rsync:// URL.
o the first word of the "path" is actually a module name.
o the remote daemon may print a message of the day when you
connect.
o if you specify no path name on the remote daemon then the
list of accessible paths on the daemon will be shown.
o if you specify no local destination then a listing of the
specified files on the remote daemon is provided.
o you must not specify the --rsh
(-e
) option (since that
overrides the daemon connection to use ssh -- see USING
RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION
below).
An example that copies all the files in a remote module named
"src":
rsync -av host::src /dest
Some modules on the remote daemon may require authentication. If
so, you will receive a password prompt when you connect. You can
avoid the password prompt by setting the environment variable
RSYNC_PASSWORD to the password you want to use or using the
--password-file
option. This may be useful when scripting rsync.
WARNING: On some systems environment variables are visible to all
users. On those systems using --password-file
is recommended.
You may establish the connection via a web proxy by setting the
environment variable RSYNC_PROXY to a hostname:port pair pointing
to your web proxy. Note that your web proxy's configuration must
support proxy connections to port 873.
You may also establish a daemon connection using a program as a
proxy by setting the environment variable RSYNC_CONNECT_PROG to
the commands you wish to run in place of making a direct socket
connection. The string may contain the escape "%H" to represent
the hostname specified in the rsync command (so use "%%" if you
need a single "%" in your string). For example:
export RSYNC_CONNECT_PROG='ssh proxyhost nc %H 873'
rsync -av targethost1::module/src/ /dest/
rsync -av rsync://targethost2/module/src/ /dest/
The command specified above uses ssh to run nc (netcat) on a
proxyhost, which forwards all data to port 873 (the rsync daemon)
on the targethost (%H).
Note also that if the RSYNC_SHELL environment variable is set,
that program will be used to run the RSYNC_CONNECT_PROG command
instead of using the default shell of the system()
call.