rsync服务是一个开源的,功能强大的,可实现全增,增量的本地或者远程数据同步工具,适应于多种系统平台。
rsync服务一些特性
- 支持复制,同步链接文件,设备文件等一些特殊文件。
- 同步时可以排除指定的目录或文件。
- 同步时可以保持原文件的权限,时间等属性信息。
- 支持全量,增量的数据同步功能,数据传输效率较高。
- 可以使用RSH,SSH方式或直接套接字来同步数据。
- 支持匿名或认证模式同步数据。
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
|