一、rsync的基本语法:

    需要注意的是,通过daemon接入和Shell接入,如果使用的是 User@HOST这样的格式,那么它们的区别是,daemon使用的是::,而Shell使用的是:;

Local:  rsync [OPTION...] SRC... [DEST]
Access via remote shell 通过shell接入:
  接收Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  发送Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon 通过daemon接入:
  接收Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  发送Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

    Rsnc命令的常用选项:

Options
 -v, --verbose               increase verbosity 显示信息
 -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)归档
     --no-OPTION             turn off an implied OPTION (e.g. --no-D)
-z, --compress              compress file data during the transfer压缩
     --compress-level=NUM    explicitly set compression level


一些使用例子:

        rsync -t *.c foo:src/
     rsync -avz foo:src/bar /data/tmp
     rsync -avz foo:src/bar/ /data/tmp
    rsync -av /src/foo /dest    rsync -av /src/foo/ /dest/foo

   传送多个文件时,第二个文件可以省略主机写法:

rsync -av host:file1 :file2 host:file{3,4} /dest/
rsync -av host::modname/file{1,2} host::modname/file3 /dest/
rsync -av host::modname/file1 ::modname/file{3,4}

二、连接Rsync Daemon服务


     Rsync通常使用Tcp 873端口:

 rsync -av targethost1::module/src/ /dest/
  rsync -av rsync:://targethost2/module/src/ /dest/
  • you either use a double colon :: instead of a single colon to separate the hostname from the path, or you use an rsync:// URL.使用双冒号或者URL的格式连接;

  • the first word of the "path" is actually a module name. 路径的第一个词实际上是模块名字;

  • the remote daemon may print a message of the day when you connect.连接远程Daemon,客户端会打印连接的时间

  • if you specify no path name on the remote daemon then the list of accessible paths on the daemon will be shown. 如果没有指定远程daemon服务的路径名称,那么将列出所有daemon上允许进入的路径;

  • if you specify no local destination then a listing of the specified files on the remote daemon is provided.

  • you must not specify the --rsh (-e) option.如果没有指定本地的目的路径,那么将列出请求的daemon服务路径上的文件;


三、配置Rsync Daemon服务

        Rsyncd.conf文件时rsync daemonyun运行时的配置文件,它控制了认证,接入,日志和可用的模块(modules)

     rsyncd.conf文件包含了模块和参数,一个模块由方括号括起来,模块的参数的格式为“nam=values”

=号前面和后面不能有空格,参数值value前面或者后面的空格将被丢弃,参数值value都是字符或者布尔值,不需要引号引起来,


        启动daemon服务需要在rsync命令后面加上--daemon选项,如果需要使用chroot,绑定低于1024端口(默认端口873),或者设置文件的所有者权限,那么必须要在root权限下运行:


        启动daemon服务可以通过在系统上inited(RHEL6,RHEL7是xinited)上启动,作为独立的运行服务,或者通过shell使用远程的rsync客户端操作:

        第一种方法,在系统上独立运行:

        1、首先确保在/etc/services文件里面加入以下内容,RHEL7默认已经添加:

            
   rsync           873/tcp                         # rsync
   rsync           873/udp                         # rsync