rsync服务是一个开源的,功能强大的,可实现全增,增量的本地或者远程数据同步工具,适应于多种系统平台。

rsync服务一些特性

  1. 支持复制,同步链接文件,设备文件等一些特殊文件。
  2. 同步时可以排除指定的目录或文件。
  3. 同步时可以保持原文件的权限,时间等属性信息。
  4. 支持全量,增量的数据同步功能,数据传输效率较高。
  5. 可以使用RSH,SSH方式或直接套接字来同步数据。
  6. 支持匿名或认证模式同步数据。

rsync命令参数

参数说明
-a以归档的方式传输数据
-v显示详细过程
-z以压缩方式传输数据
-P显示数据传输的详细进程
–exclude传输数据时排除指定的文件或目录

rsync数据同步方式

  • 本地主机(local) 类似与cp命令。
  • 借助SSH服务

[root@server test]# rsync -avzP -e “ssh -p 22” root@30.32.4.172:/root/test/ /root/test/

	使用SSH将30.32.4.172主机下的/root/test目录下的内容同步到/root/test下。
- 守护进程
实验环境 
		server 30.32.4.171
		client 30.32.4.172
服务端用于存储备份,客户端请求同步数据。都需要安装rsync
```shell
[root@server ~]# yum install rsync -y

服务端配置 配置rsync文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[root@server ~]# cat /etc/rsyncd.conf
uid = rsync #指定运行守护进程具有的UID
gid = rsync #指定运行守护进程具有的GID
use chroot = no #禁止传输数据使用root权限
max connections = 2000 #最大连接数
pid file = /var/run/rsyncd.pid #pid文件存储目录
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[backup] #模块名称
path=/backup #路径
ignore errors #忽略错误
read only=false #允许客户端上传
list=false
hosts allow=30.32.4.0/24 #允许主机段
hosts deny=0.0.0.0/32 #拒绝除hosts allow之外的任何主机
auth users=rsync_user #用于连接认证的虚拟用户
secrets file=/etc/rsync.password #用于认证的密码文件路径

创建rsync用户并配置认证密码文件

1
2
3
4
5
[root@server ~]# useradd rsync -s /sbin/nologin -M
[root@server ~]# mkdir /backup
[root@server ~]# chmod -R rsync.rsync /backup/
[root@server ~]# echo "rsync_user:rsync_password">>/etc/rsync.password
[root@server ~]# chmod 666 /etc/rsync.password

启动服务 rsync –daemon 关闭 kill $(cat /var/run/rsync.pid)

客户端配置 配置认证的密码文件及授权

1
2
[root@172 ~]# echo "rsync_password">>/etc/rsyncd.password
[root@172 ~]# chmod 600 /etc/rsyncd.password

测试同步

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[root@172 ~]# rsync -avzP ./test.file rsync_user@30.32.4.171::backup --password-file=/etc/rsyncd.password 
sending incremental file list
test.file
            170 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)
rsync: chgrp ".test.file.SckOKN" (in backup) failed: Operation not permitted (1)

sent 161 bytes  received 128 bytes  578.00 bytes/sec
total size is 170  speedup is 0.59
同步结果
[root@server backup]# ls
test.file