rsync简介
rsync全称remote sync,是一种更高效、可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比scp命令更高效,但是rsync本身是一种非加密的传输,可以借助-e选项来设置具备加密功能的承载工具进行加密传输。
rsync是lunix系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
优点
安全性高
备份迅速,使用同步算法,只比较变化
支持增量备份
保存源目录整个目录树和文件系统
保持源文件的权限、时间、软硬连接等
无需特使权限即可安装
优化流程和比较高的文件传输效率。
多样方式来传输文件。
支持匿名运行,方便网站镜像。
与scp相比,rsync传输速度远在scp之上。(局域网测试,rsync是scp的20倍)
解决对实时性要求不高的数据备份需求
不足
同步数据,需要扫描所有文件进行对比,才进行差量传输。如果文件数量达到百万甚至千万级,扫描文件对比文件将非常耗时,降低了rsync效率。
rsync不能实时地区监测、同步数据。虽然可以通过守护进程方式触发同步,但两次动作间有时间差,导致数据不一致,无法应对出现故障时完全恢复数据。
系统环境:CentOS 7.4
服务端IP:192.168.42.8
客户端IP:192.168.42.9
1)安装rsync,执行以下命令(这里采用yum安装,也可以选择源码包安装)
[root@Rsync-Server ~]# yum -y install rsync
2)配置Rsync(服务端)
安装完毕之后,配置rsync配置文件,如果/etc/rsyncd.conf不存在,则需要手动创建一个rsyncd.conf配置文件,
vim /etc/rsyncd.conf配置内容为如下:
#指定pid文件
pid file = /var/run/rsyncd.pid
#指定lock文件
lock file = /var/run/rsyncd.lock
#指定日志文件
log file = /var/log/rsyncd.log
#指定欢迎消息文件
motd file = /etc/rsyncd.Motd
#开启日志
transfer logging = yes
#日志格式
log format = %t %a %m %f %b
#日志工具
syslog facility = local3
#自定义模块名
[backup]
#Rsync以什么用户身份运行,同步的文件夹或文件要授权相同的权限
uid = root
#Rsync以什么用户组身份运行,同步的文件夹或文件要授权相同的权限
gid = root
#指定Rsync端口,如果不配,可以通过rsync --port 8080 --daemon指定端口启动
port = 873
#描述信息
comment = rsync
#是否允许改变目录
use chroot = no
#最大连接数
max connections = 10
#只读
read only = yes
#超时时间
timeout = 300
#同步路径
path = /data/test
#密码存放路径
secrets file = /etc/rsync.pass
#允许的IP段(白名单)
hosts allow = 192.168.42.0/24
3)创建Rsync同步密匙文件
手动编辑vim /etc/rsync.pass,内容如下
#用户名
ben
#密码
12345