быстрый, универсальный, удаленный (и локальный) инструмент для копирования файлов (a fast, versatile, remote (and local) file-copying tool)
USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION
It is sometimes useful to use various features of an rsync daemon
(such as named modules) without actually allowing any new socket
connections into a system (other than what is already required to
allow remote-shell access). Rsync supports connecting to a host
using a remote shell and then spawning a single-use "daemon"
server that expects to read its config file in the home dir of
the remote user. This can be useful if you want to encrypt a
daemon-style transfer's data, but since the daemon is started up
fresh by the remote user, you may not be able to use features
such as chroot or change the uid used by the daemon. (For another
way to encrypt a daemon transfer, consider using ssh to tunnel a
local port to a remote machine and configure a normal rsync
daemon on that remote host to only allow connections from
"localhost".)
From the user's perspective, a daemon transfer via a remote-shell
connection uses nearly the same command-line syntax as a normal
rsync-daemon transfer, with the only exception being that you
must explicitly set the remote shell program on the command-line
with the --rsh=COMMAND
option. (Setting the RSYNC_RSH in the
environment will not turn on this functionality.) For example:
rsync -av --rsh=ssh host::module /dest
If you need to specify a different remote-shell user, keep in
mind that the user@ prefix in front of the host is specifying the
rsync-user value (for a module that requires user-based
authentication). This means that you must give the '-l user'
option to ssh when specifying the remote-shell, as in this
example that uses the short version of the --rsh
option:
rsync -av -e "ssh -l ssh-user" rsync-user@host::module /dest
The "ssh-user" will be used at the ssh level; the "rsync-user"
will be used to log-in to the "module".