配置文件rsyncd.conf

两种rsync服务运行方式都需要配置rsyncd.conf,其格式类似于samba的主配置文件。
配置文件rsyncd.conf默认在/etc目录下。为了将所有与rsync服务相关的文件放在单独的目录下,可以执行如下命令:

# mkdir /etc/rsyncd
# touch /etc/rsyncd/rsyncd.conf
# ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

配置文件rsyncd.conf由全局配置和若干模块配置组成。配置文件的语法为:

  • 模块以[模块名]开始

  • 参数配置行的格式是name=value,其中value可以有两种数据类型:

    • 字符串(可以不用引号定界字符串)

    • 布尔值(1/0或yes/no或true/false)

  • 以#或;开始的行为注释

  • \为续行符

全局参数

在文件中[module]之外的所有配置行都是全局参数。当然也可以在全局参数部分定义模块参数,这时该参数的值就是所有模块的默认值。

参数说明默认值
address在独立运行时,用于指定的服务器运行的IP地址。由xinetd运行时将忽略此参数,使用命令行上的–address选项替代。本地所有IP
port指定rsync守护进程监听的端口号。由xinetd运行时将忽略此参数,使用命令行上的–port选项替代。873
motdfile指定一个消息文件,当客户连接服务器时该文件的内容显示给客户。
pidfilersync的守护进程将其PID写入指定的文件。
logfile指定rsync守护进程的日志文件,而不将日志发送给syslog。
syslogfacility指定rsync发送日志消息给syslog时的消息级别。daemon
socketoptions指定自定义TCP选项。

模块参数

模块参数主要用于定义rsync服务器哪个目录要被同步。模块声明的格式必须为[module]形式,这个名字就是在rsync客户端看到的名字,类似于Samba服务器提供的共享名。而服务器真正同步的数据是通过path来指定的。可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:
1、基本模块参数

参数说明默认值
path指定当前模块在rsync服务器上的同步路径,该参数是必须指定的。
comment给模块指定一个描述,该描述连同模块名在客户连接得到模块列表时显示给客户。

2、模块控制参数

参数说明默认值
usechroot若为true,则rsync在传输文件之前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要root权限,并且不能备份指向path外部的符号连接所指向的目录文件。true
uid指定该模块以指定的UID传输文件。nobody
gid指定该模块以指定的GID传输文件。nobody
maxconnections指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。0(没有限制)
lockfile指定支持maxconnections参数的锁文件。/var/run/rsyncd.lock
list指定当客户请求列出可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。true
readonly指定是否允许客户上传文件。若为true则不允许上传;若为false并且服务器目录也具有读写权限则允许上传。true
writeonly指定是否允许客户下载文件。若为true则不允许下载;若为false并且服务器目录也具有读权限则允许下载。false
ignoreerrors指定在rsync服务器上运行delete操作时是否忽略I/O错误。一般来说rsync在出现I/O错误时将将跳过–delete操作,以防止因为暂时的资源不足或其它I/O错误导致的严重问题。true
ignorenonreadable指定rysnc服务器完全忽略那些用户没有访问权限的文件。这对于在需要备份的目录中有些不应该被备份者获得的文件时是有意义的。false
timeout该选项可以覆盖客户指定的IP超时时间。从而确保rsync服务器不会永远等待一个崩溃的客户端。对于匿名rsync服务器来说,理想的数字是600(单位为秒)。0(未限制)
dontcompress用来指定那些在传输之前不进行压缩处理的文件。该选项可以定义一些不允许客户对该模块使用的命令选项列表。必须使用选项全名,而不能是简称。当发生拒绝某个选项的情况时,服务器将报告错误信息然后退出。例如,要防止使用压缩,应该是:”dontcompress=*”。*.gz*.tgz*.zip*.z*.rpm*.deb*.iso*.bz2*.tbz

3、模块文件筛选参数

参数说明默认值
exclude指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到exclude列表中。这等同于在客户端命令中使用–exclude来指定模式。
excludefrom指定一个包含exclude规则定义的文件名,服务器从该文件中读取exclude列表定义。
include指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到include列表中。这等同于在客户端命令中使用–include来指定模式。
includefrom指定一个包含include规则定义的文件名,服务器从该文件中读取include列表定义。
  • 一个模块只能指定一个exclude参数、一个include参数。

  • 结合include和exclude可以定义复杂的exclude/include规则。

  • 这几个参数分别与相应的rsync客户命令选项等价,唯一不同的是它们作用在服务器端。

  • 关于如何书写规则文件的内容请参见上节。

4、模块用户认证参数

参数说明默认值
authusers指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。用户名和口令以明文方式存放在secretsfile参数指定的文件中。(匿名方式)
secretsfile指定一个rsync认证口令文件。只有在authusers被定义时,该文件才起作用。
strictmodes指定是否监测口令文件的权限。若为true则口令文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。true
  • rsync认证口令文件的权限一定是600,否则客户端将不能连接服务器。

  • rsync认证口令文件中每一行指定一个用户名:口令对,格式为:

# 以 "#" 开始的行为注释行
username:passwd
# 一般来说口令最好不要超过8个字符。

若您只配置匿名访问的rsync服务器,则无需设置上述参数。5、模块访问控制参数

参数说明默认值
hostsallow用一个主机列表指定哪些主机客户允许连接该模块。不匹配主机列表的主机将被拒绝。*
hostsdeny用一个主机列表指定哪些主机客户不允许连接该模块。

客户主机列表定义可以是以下形式:

  • 单个IP地址。例如:192.168.0.1

  • 整个网段。例如:192.168.0.0/24,192.168.0.0/255.255.255.0

  • 可解析的单个主机名。例如:centos,centos.smartraining.cn

  • 域内的所有主机。例如:*.smartraining.cn

  • “*”则表示所有。

  • 多个列表项要用空格间隔。

6、模块日志参数

参数说明默认值
transferlogging使rsync服务器将传输操作记录到传输日志文件。false
logformat指定传输日志文件的字段。”%o%h[%a]%m(%u)%f%l”

*设置了”logfile”参数时,在日志每行的开始会添加”%t[%p]“。

  • 可以使用的日志格式定义符如下所示:

    • %a-远程IP地址

    • %h-远程主机名

    • %l-文件长度字符数

    • %p-该次rsync会话的PID

    • %o-操作类型:”send”或“recv”

    • %f-文件名

    • %P-模块路径

    • %m-模块名

    • %t-当前时间

    • %u-认证的用户名(匿名时是null)

    • %b-实际传输的字节数

    • %c-当发送文件时,记录该文件的校验码

    ==========================================================================================

    在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
    Rsync的命令格式可以为以下六种:
      rsync[OPTION]...SRCDEST
      rsync[OPTION]...SRC[USER@]HOST:DEST
      rsync[OPTION]...[USER@]HOST:SRCDEST
      rsync[OPTION]...[USER@]HOST::SRCDEST
      rsync[OPTION]...SRC[USER@]HOST::DEST
      rsync[OPTION]...rsync://[USER@]HOST[:PORT]/SRC[DEST]
      对应于以上六种命令格式,rsync有六种不同的工作模式:
      1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync-a/data/backup
      2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync-avz*.cfoo:src
      3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync-avzfoo:src/bar/data
      4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync-avroot@172.16.78.192::www/databack
      5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync-av/databackroot@172.16.78.192::www
      6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync-vrsync://172.16.78.192/www

    rsync参数的具体解释如下:
    -v,--verbose详细模式输出
    -q,--quiet精简输出模式
    -c,--checksum打开校验开关,强制对文件传输进行校验
    -a,--archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
    -r,--recursive对子目录以递归模式处理
    -R,--relative使用相对路径信息
    -b,--backup创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
    --backup-dir将备份文件(如~filename)存放在在目录下。
    -suffix=SUFFIX定义备份文件前缀
    -u,--update仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
    -l,--links保留软链结
    -L,--copy-links想对待常规文件一样处理软链结
    --copy-unsafe-links仅仅拷贝指向SRC路径目录树以外的链结
    --safe-links忽略指向SRC路径目录树以外的链结
    -H,--hard-links保留硬链结
    -p,--perms保持文件权限
    -o,--owner保持文件属主信息
    -g,--group保持文件属组信息
    -D,--devices保持设备文件信息
    -t,--times保持文件时间信息
    -S,--sparse对稀疏文件进行特殊处理以节省DST的空间
    -n,--dry-run现实哪些文件将被传输
    -W,--whole-file拷贝文件,不进行增量检测
    -x,--one-file-system不要跨越文件系统边界
    -B,--block-size=SIZE检验算法使用的块尺寸,默认是700字节
    -e,--rsh=COMMAND指定使用rsh、ssh方式进行数据同步
    --rsync-path=PATH指定远程服务器上的rsync命令所在路径信息
    -C,--cvs-exclude使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
    --existing仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
    --delete删除那些DST中SRC没有的文件
    --delete-excluded同样删除接收端那些被该选项指定排除的文件
    --delete-after传输结束以后再删除
    --ignore-errors及时出现IO错误也进行删除
    --max-delete=NUM最多删除NUM个文件
    --partial保留那些因故没有完全传输的文件,以是加快随后的再次传输
    --force强制删除目录,即使不为空
    --numeric-ids不将数字的用户和组ID匹配为用户名和组名
    --timeout=TIMEIP超时时间,单位为秒
    -I,--ignore-times不跳过那些有同样的时间和长度的文件
    --size-only当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
    --modify-window=NUM决定文件是否时间相同时使用的时间戳窗口,默认为0
    -T--temp-dir=DIR在DIR中创建临时文件
    --compare-dest=DIR同样比较DIR中的文件来决定是否需要备份
    -P等同于--partial
    --progress显示备份过程
    -z,--compress对备份的文件在传输时进行压缩处理
    --exclude=PATTERN指定排除不需要传输的文件模式
    --include=PATTERN指定不排除而需要传输的文件模式
    --exclude-from=FILE排除FILE中指定模式的文件
    --include-from=FILE不排除FILE指定模式匹配的文件
    --version打印版本信息
    --address绑定到特定的地址
    --config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件
    --port=PORT指定其他的rsync服务端口
    --blocking-io对远程shell使用阻塞IO
    -stats给出某些文件的传输状态
    --progress在传输时现实传输过程
    --log-format=formAT指定日志文件格式
    --password-file=FILE从FILE中得到密码
    --bwlimit=KBPS限制I/O带宽,KBytespersecond
    -h,--help显示帮助信息
    详细出处参考:http://www.jb51.net/LINUXjishu/66859.html