实验环境:centos7.3
实验主机信息:192.168.101.185-服务器端 192.168.101.208-客户端
实验目的:使用rsync将服务器端的文件同步到客户端,客户端自动跳过本地已有的文件,仅将本地没有的文件从服务器端拉去过来。

一:下载安装rsync

方法一:yum安装
在客户端和服务器端分别执行 yum install rsync -y
方法二:源码编译安装
1.下载rsync包
http://rsync.samba.org/
2.点击下载链接
详解rsync安装,配置以及同步过程
3.将下载的包传到linux中并解压

rz rsync-3.1.3.tar.gz
tar -xvf rsync-3.1.3.tar.gz

4.进入到解压到文件夹下,依次执行如下命令

./configure --prefix=/usr/local/rsync/
make $$ make install

二:服务配置及启动服务

1.服务端的服务配置
yum 安装 vim /etc/rsyncd.conf , 源码安装vim /usr/local/rsync/rsyncd.conf

uid = root
gid = root
use chroot = no
max connections = 4
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = .gz .tgz .zip .z .Z .rpm .deb .bz2
[test] # 自定义的标签名字,后续在客户端会用上
path=/liuning/ #客户端需要从服务器端同步的文件目录,存在于服务器端上
comment=test
ignore errors
read only=yes
write only=no
list=no
auth user=root#一个存在于服务器端的用户,如有多个逗号隔开,并且要求具有对需同步目录下的文件的读和执行权限。
secrets file=/etc/rsyncd.passwd#存放用户名和密码的地方
hosts allow= #代表允许所有的地址,安全起见,最好是客户端的地址。

2.服务器端vim /etc/rsyncd.passwd,并加入如下内容(没有就手动创建)
root:123456 # 前者是上面配置文件中的auth user,后者是该用户的密码
3.chmod 600 /etc/rsyncd.passwd,必须执行,否则同步时会报错
4.启动服务
yum安装的启动方式 systemctl start rsyncd 编译安装的启动方式 ./usr/local/rsync/bin/rsync
注意:仅需要服务器端开启rsync服务,客户端不需要开启

三:客户端配置

1.vim /etc/rsyncd.passwd 在里面写入(没有就手动创建)
123456 # 与服务器端中的 rsyncd.passwd中的密码对应
2.chmod 600 /etc/rsyncd.passwd,必须修改,否则同步时报错

四,同步实验

1.查看服务器端的/liuning/下有哪些文件

root@centos7liuning#ls
1 2 3

2.查看客户端的/liuning/下有哪些文件

root@centos7liuning#ls
1

3.在客户端执行同步命令

root@centos7liuning#rsync -vzrtopg --progress --delete root@192.168.101.185::test /liuning/ --password-file=/etc/rsyncd.passwd
receiving incremental file list
./
1
0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=2/4)
2
0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=1/4)
3
0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=0/4)

sent 86 bytes received 198 bytes 568.00 bytes/sec
total size is 0 speedup is 0.00

root是服务器端的auth user中的用户,@后的地址是服务器端的IP地址,::是服务器端自定义的标签的名称, /liuning/是需要同步到本地的目录。
4.查看结果,查看客户端的/liuning/下的文件

root@centos7liuning#ls
1 2 3

5.同步完成