Created
Jun 14, 2024 12:47 PM
Tags
RSYNC服务
A. RSYNC服务原理
定义
- RSYNC:remote synchronize,远程同步
- rsync是类unix系统下的数据镜像备份工具
- rsync 命令在同步文件之前要先登录目标主机进行用户身份认证,认证过后才能进行数据同步
身份认证方式取决于所使用的协议类型,rsync一般使用两种协议进行数据同步:ssh协议 和 rsync协议
- rsync可以实现远程同步,类似:ftp、nfs等
- rsync也可以实现本地复制,类似:scp、cp、rm等
- rsync在同步时采用rsync算法,性能上高于同类命令
特点
- 能更新整个目录树和文件系统
- 有选择性的保留符号链接、文件属性、权限、设备以及时间等
- 对于安装来说,无任何特殊权限要求
- 对于多个文件来说,文件传输效率高
- 能用ssh或自定义端口作为传输入口端口
- rsync通过md5sum获取文件特征码的方式区分变化
- rsync能进行全量同步、也可以增量同步
RSYNC vs. SCP
rsync | scp |
多线程工具 | 单线程工具 |
支持增量传递 | 全部替换 |
同步效率更高 | 传输速度更快 |
基准、备份和推送、拉取
- 同步对象:源数据(基准服务器)、目标数据(备份服务器)
- 登录验证:ssh登录验证模式、rsync登录验证模式
- 同步方式:基准上推送(上传)、备份上拉取(下载)
- 同步方向:默认
单向同步
ssh登录验证模式:使用 ssh协议 作为基础进行用户身份认证,然后进行数据同步。 rsync登录验证模式:使用 rsync协议 进行用户身份认证(非系统用户),然后进行数据同步。
定时备份 VS. 实时备份
定期同步
的缺点:
- 执行备份的时间固定,延期明显,实时性差
- 当同步源长期不变化时,密集的定期任务是不必要的(浪费资源)
实时同步
的优点:
- 一旦同步源出现变化,立即启动备份,实时性好
- 只要同步源无变化,则不执行备份,节省资源
B. RSYNC服务参数
rsync命令
选项:常用选项:
Inotify 工具
Inotifywait命令
作用: 用于持续监控,实时输出结果
格式与选项:
事件说明:
Inotifywatch命令
C. RSYNC服务搭建流程
1. 基本功能搭建
手动同步
环境:设备一(基准服务器),设备二(rsync备份服务器),单向同步
- 基准服务器:
可配置功能:
创建源数据
设置ssh免密登录
创建定时计划任务用户
- 备份服务器:
创建接受数据的目录
设置ssh免密登录
创建接受专用用户
2. 定时同步
通过定时计划任务
环境:设备一(基准服务器),设备二(rsync备份服务器),单向同步
- 基准服务器:
对备份服务器设置免密登录
创建测试数据
建立定时计划任务(查看定时计划任务)
3. 实时同步
通过Inotify+RSYNC脚本
环境:设备一(基准服务器),设备二(rsync备份服务器),单向同步
- 基准服务器端:
- 安装
inotify工具
- 使用
inotify+rsync脚本
实时备份 - 可以将命令使用绝对路径;
- 在脚本开始加上环境配置文件: !/bin/sh . /etc/profile . ~/.bash_profile
若脚本不执行的解决方法:
D. 常见报错 & 问题
- src目录后加/和不加/的区别,前者是目录下的资源,后者是当前目录及子目录和文件
- 执行脚本实现实时同步,其中,用户登录时需要免密,否则脚本执行失败