rsync服务端配置文件分全局定义和模块定义:
全局定义:
#可以在全局定义中,定义模块参数。
#rsync的yes/no和true/false都是通用的,建议用一种写法。
port = 873
#指定端口号(默认是873),可省略不写
motd file = /etc/rsyncd/rsyncd.motd
#motd file 指定一个消息提示的文件,要自己写文件内容,一般都不写,不影响运行,看个人喜好。
举例:你在服务端定义了这个文件,文件内容为This is motd file!,你在客户端使用rsync进行同步服务端时,首先会提示This is motd file!然后再进行同步。
pid file = /var/run/rsyncd.pid
#将rsync守护进程的PID写入指定的文件,防止多个守护进程运行(当kill杀死PID后,也要同时删除你定义的rsyncd.pid,否则是无法启动的,我这里是以独立运行rsync服务的截图)
socket options 定义TCP选项,默认关闭
address 关闭即可
模块定义:
[demo]
#定义模块的名字,rsync将通过这个名字来确定同步那个文件夹,这个模块是必须的
path = /opt/www
#指定需要同步的目录所在位置
comment = whsir
#注释
ignore errors
#忽略IO错误
exclude = test1/ test2/
#排除目录,排除不需要同步的目录,多个之间使用空格隔开
--exclude-from=FILE
#从文件读取排除模式(将排除的文件或目录写在一个文件中,一行一个文件或目录)
--include-from=FILE
#从文件读取包含模式(将排除的文件或目录写在一个文件中,一行一个文件或目录)
include = test3/ test4/
#指定目录,要和exclude一同使用
charset = GBK
#指定编码格式,一般是在windows和linux之间同步时用到(Windows和Linux端rsync推拉同步https://blog.whsir.com/post-527.html)
auth users = user
#指定用来同步的用户,可使用空格或者逗号隔开多个用户名,如果不使用此选项,默认匿名,结合secrets file来使用
secrets file = /etc/rsyncd/rsyncd.secrets
#指定密码文件的路径,其实文件后缀不一定非是.secrets,可以写在全局配置里。/etc/rsyncd/rsyncd.secrets文件内容格式为,用户名:密码,注意中间用冒号,结合auth users来使用
uid = nobody
gid = nobody
#指定用户和用户组来执行,默认nobody
use chroot = false
#用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接(软链接)文件,将会排除在外。建议false,当然你也可以写成no。
#chroot为true时必须使用root权限,且不能备份path路径外的链接文件
write only = false
#是否禁止客户端下载(客户端用rsync拉服务端的文件就相当于下载),如果为true,则客户端不能使用rsync拉服务端的文件,会报出一下错误,不写这个参数的话,默认是disabled;若为false并且服务器目录也具有读权限则允许下载。
ERROR: module is write only
rsync error: syntax or usage error (code 1) at main.c(692) [sender=3.0.6]
rsync: connection unexpectedly closed (5 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.6]
read only = false
#指定是否允许客户上传文件。若为 true 则不允许上传(也就是客户端用rsync推);若为false并且服务器目录也具有读写权限则允许上传。
hosts allow=192.168.1.0/255.255.255.0 123.0.0.0/8 123.123.123.123
#指定哪些客户端允许连接该模块,可以是单个IP,也可以指定整个网段,格式是ip与ip之间、ip和网段之间、网段和网段之间要用空格隔开 ,如果写*则是所有
hosts deny = *
#指定哪些客户端不允许连接该模块,*是所有(hosts allow定义了客户端的IP并写在了hosts deny的前面,则只允许hosts allow定义的IP进行连接,这里需要注意hosts allow和hosts deny的先后顺序)
max connections = 3
#并发连接的最大数,在达到最大值时,如果再有客户端使用同步会提示如下信息:
@ERROR: max connections (1) reached -- try again later
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
提示客户端达到最大连接数,稍后尝试,如果写成0则不限制,负值禁用模块,配合lock file锁文件使用。
如果将max connections和/var/log/rsync.lock定义在[模块]下,则只对当前模块生效。
如果将max connections和/var/log/rsync.lock定义在全局下,则对下面所有的模块生效,如果设置全局max connections=1那么如果你定义多个模块,则同时只能连接一个,根据使用情况进行设置!!!
lock file = /var/run/rsyncd.lock
#rsync守护进程对此文件使用记录锁定,确保服务端[模块]不超过最大连接数,配合max connections使用。
timeout = 600
#超时时间,超过这个时间将会断开连接,确保rsync服务器不会一直等待一个崩溃的客户端,建议设置600秒,如果设置为0,则表示没有超时。
transfer logging = false
#是否记录传输日志,建议false
log file = /var/log/rsync.log
#指定rsync守护进程的日志文件
log format = %t %a %m %f %b
#日志文件格式,根据自身情况选择是否使用
list = false
#是否显示数据目录,从安全的角度出发,这里应该要false
原文链接:rsync命令之服务端参数详解,转载请注明来源!