rsync服务主要用于不同主机间的文件同步和备份,当然也可以用在同一主机上。

 

一、实验环境
 rsync server:CentOS7.3
 rsync client: CentOS7.6

 
 

二、rsync server端配置

#确认系统是否安装rsync,CentOS7 默认是安装了
[root@localhost ~]# rpm -aq|grep rsync
rsync-3.0.9-17.el7.x86_64 

 
 

#编辑rsync配置文件
#vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 2
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log

[hadoop]
path = /yao/
comment  = self define file
read only = yes
list = no
auth users = hadoop
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.60.3 #设置访问客户端的白名单
#hosts deny = * #设置客户端访问的黑名单

在正式rsync配置文件中最好不要有注释,可能会使得配置报错,或者客户端认证不通过
 

#对上面的配置进行简单的介绍
[hadoop]#模块名,格式 [module-name]
path = /yao/#需要同步的目录
comment  = self define file#注释,可以随便写
read only = yes#客户端只能从服务端读取文件,不能上传文件到sync服务端
list = no
auth users = hadoop#认证的用户,不用系统中存在,可以随便写,到时候再secrets file的配置文件中写就可以了
secrets file = /etc/rsyncd.secrets#client使用的配置用户名密码,格式:username:password
hosts allow = 192.168.60.3 #设置访问客户端的白名单
#hosts deny = * #设置客户端访问的黑名单

 

#vim /etc/rsyncd.secrets
hadoop:hadoop #服务器端的secrets文件必须要有用户名和密码

 同样的在正式的配置中不要有"#服务器端***"的注释

 
 
三、客户端配置
 
客户端编辑登录rsync服务端需要使用的密码,只填写用户名就可以了

#vim /etc/rsyncd.secrets
hadoop

 

上传 rsync -avz --password-file=/etc/rsyncd.secrets /opt/hadoop/etc/hadoo hadoop@namenode::hadoop 
下载 rsync -avz --progress --delete --password-file=/etc/rsyncd.secrets hadoop@namenode::hadoop /opt/hadoop/etc/hadoop

上传(前提是服务器端的配置文件运行写的权限)  rsync -avz --password-file=[客户端登录时候使用的账号密码] [需要上传的文件路径] [auth_user]@IP::[模块名]
下载 rsync -avz --progress --delete --password-file=[密码文件路径] [auth_user]@IP::[模块名]

  由于在服务端配置了read only = yes 所以本次实验是无法上传文件的

  -a 相当于 -rlptgoD 的集合
  -u 等同于 –update,在目标文件比源文件新的情况下不更新
  -v 显示同步的文件
  --progress 显示文件同步时的百分比进度、传输速率

  --delete 如果源目标系统中不存在 , 同步系统中的文件将被删除
 
  !!重要!!密码配置的相关文件的全系记得修改为600,否则会报错。
  # chmod 600 /etc/rsyncd.secrets

  可以使用man rsync看看相关参数说明,这里就不在赘述了