官方文档:https://download.samba.org/pub/rsync/rsyncd.conf.html

 
1:daemon模式配置文件
 
      rsync以daemon方式运行的时候使用配置文件为rsyncd.conf
 
2:使用daemon模式的时候,一定要分清楚服务端和客户端,与平时理解的服务端与客户端不太一样
     
     被同步的一端为服务端,要把文件同步到另一端的源端为客户端

rsync的daemon模式-LMLPHP

3:文件格式
     1) rsyncd.conf配置文件由模块和参数组成,一个模块以写在方括号里的模块名称开始,直到下一个模块,模块里包含由“name = value”格式的参数。
     2)文件是基于行的,每一行代表一个模块名或者参数
 
4:启动方式
 
daemon模式运行必须启动的时候加参数 --daemon
rsync --daemon

5:模块配置

 
服务端(目标端,被同步的一端)的配置文件:
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:
uid = root
gid = root
use chroot = no
max connections =
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsyncd.lock [test]
path = /captain/shell
read only = no
auth users = rsync
secrets file = /etc/rsyncd.secrets
list = no
1)uid、gid:当使用非root账号时,那么一定要确保服务的的文件夹是否有该非root账号写入的权限
 
2)use chroot = no :是否可以切换到root目录,当chroot为yes的时候,客户端连接模块的时候,先chroot到模块参数指定的目录下,必须使用root权限,端口号必须是1024以内,且不能备份path路径外的链接文件
 
3)max connections = 2 :表示同时最大的连接数,也就是同时只能有两个客户端对自己进行连接
 
rsync的daemon模式-LMLPHP
 rsync的daemon模式-LMLPHPrsync的daemon模式-LMLPHP
 
并且此选项必须与lock file = /var/run/rsyncd.lock 共同使用,若不指定,默认为/var/run/rsyncd.lock
 
4)path = /captain/shell:表示的是当客户端把数据同步过来将保存的路径
 
5)read only = no :如果为只读,那么将不能进行写同步,所以必须关闭
 
rsync的daemon模式-LMLPHP
 rsync的daemon模式-LMLPHP
 
6)auth users = rsync :用来进行同步的用户,不需要系统用户中有,虚拟的就行
 
7)secrets file = /etc/rsyncd.secrets :表示的是账号密码文件,此文件可随意指定,文件里必须以username:password的格式 
rsync:
 
此文件权限必须为600,否则会报错
 
rsync的daemon模式-LMLPHP
 rsync的daemon模式-LMLPHP
  
8)list = no :表示的是当服务端拒绝客户端的请求时,是否是直接显示权限拒绝,还是现实模块不存在,一般与hosts allow 和hosts deny一起使用
 
当一个被服务端拒绝的请求进来时,如果设置为 list = no,那么直接返回模块不存在
 
 rsync的daemon模式-LMLPHP
 
如果不设置,那么是什么错就返回什么错
 
 rsync的daemon模式-LMLPHP
 
 
客户端配置文件:
 
客户端(源端,需将此台机器上的文件同步出去)的配置文件只需做简单的修改,设置日志文件和pid文件路径,然后启动rsync即可
 
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

#uid = root
#gid = root
#use chroot = yes
#max connections =
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
# exclude = lost+found/
# transfer logging = yes
# timeout =
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp]
# path = /home/ftp
# comment = ftp export area

vim /etc/rsyncd.passwd

同步命令:

rsync -avz --password-file=/etc/rsyncd.passwd /data/shell/ [email protected]::test
-avz:表示同步过程中输出信息显示的格式
--password-file=/etc/rsyncd.passwd :表示客户端将拿此密码去服务端进行认证,所以这个文件里的秘密为上面服务的所设置的密码,只需passwd
/data/shell/ :表示源目录,将要把此目录下的所有文件同步到远端。注:这里有无/的区别:有/的时候表示的是/data/shell/目录下的东西同步过去而无/的时候表示的是把shell目录同步过去

 

同步报错:
 
rsync的daemon模式-LMLPHP
 rsync的daemon模式-LMLPHP 

表示远端配置文件里所设置的路径不存在,所有得先创建目录

05-11 08:54