网络服务 - RSYNC
00 分钟
2024-6-20
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备份服务器),单向同步
    • 基准服务器端
        1. 安装inotify工具
          1. 使用 inotify+rsync脚本 实时备份
            1. 若脚本不执行的解决方法:
              1. 可以将命令使用绝对路径;
              1. 在脚本开始加上环境配置文件: !/bin/sh . /etc/profile . ~/.bash_profile

      D. 常见报错 & 问题

      • src目录后加/和不加/的区别,前者是目录下的资源,后者是当前目录及子目录和文件
      • 执行脚本实现实时同步,其中,用户登录时需要免密,否则脚本执行失败
      上一篇
      Linux 基础知识 往期汇总
      下一篇
      <K8S> vol. 01 - kubernetes 组件