当前位置: 首页 > article >正文

day14:RSYNC同步

一,概述

概述

rsync (开源)是一个高效的文件同步和传输工具,广泛用于 Linux 和 Unix 系统中。它可以在本地和远程系统之间同步文件和目录,同时支持增量备份,能够只传输更改过的文件部分,以减少带宽和时间。

扩展

sync(同步)

sync 是一种数据传输方式,其中数据在发送和接收之间是实时的。这意味着发送方在数据传输完成后,接收方才能开始处理数据。在这种模式下,所有操作都必须在数据传输完成后才能继续。sync 的典型应用场景包括文件系统的同步和实时数据传输。

async(异步)

async 是一种数据传输方式,其中数据的发送和接收是独立进行的。在这种模式下,发送方在数据传输的同时可以继续执行其他操作,而不必等待接收方确认接收完成。async 通常用于后台处理或延迟处理的场景。

rsync(远程同步)

rsync 是一个用于文件和目录同步的工具,支持本地和远程同步。它的主要特点是能够高效地只传输已更改的文件部分,从而节省带宽和时间。

同步方式

  • 本地同步:在同一台机器上同步文件和目录。
  • 远程同步:在不同主机之间同步文件,使用 SSH 或 RSH 协议进行安全传输。
  • 增量同步:仅同步更改的部分,而不是整个文件,节省时间和带宽。

二,命令使用

命令概述

rsync [选项] 源 目标

选项描述示例命令
-a归档模式:递归复制文件并保留所有文件属性。rsync -av --delete-after /local/dir/ user@remote:/remote/dir/
-r递归:复制子目录及其内容。rsync -avz --delete-after /local/dir/ user@remote:/remote/dir/
-v详细模式:输出详细的传输信息。rsync -av --delete-after --progress /local/dir/ user@remote:/remote/dir/
-z压缩:在传输时进行压缩,适用于慢速网络。rsync -avz --delete-after /local/dir/ user@remote:/remote/dir/
-e指定远程 shell:通常用于指定使用的传输协议,如 sshrsync -av --delete-after -e 'ssh -p 2222' /local/dir/ user@remote:/remote/dir/
--delete删除多余文件:在目标目录中删除源目录中不存在的文件。rsync -av --delete /local/dir/ user@remote:/remote/dir/
--delete-after在传输后删除:完成文件传输后删除目标中多余的文件。rsync -av --delete-after /local/dir/ user@remote:/remote/dir/
--dry-run模拟运行:显示将要执行的操作,但不实际执行任何操作。rsync -av --delete-after --dry-run /local/dir/ user@remote:/remote/dir/
-u只更新:仅复制源文件比目标文件更新的文件。rsync -avu --delete-after /local/dir/ user@remote:/remote/dir/
--progress显示进度:在传输过程中显示文件传输的进度。rsync -av --delete-after --progress /local/dir/ user@remote:/remote/dir/
-h人类可读:以更易读的格式显示文件大小(如 KB、MB)。rsync -avh --delete-after /local/dir/ user@remote:/remote/dir/
-P部分传输和进度显示:显示进度并保留部分传输的文件。rsync -avP --delete-after /local/dir/ user@remote:/remote/dir/
--exclude排除特定文件或目录:在同步时排除某些文件或目录。rsync -av --delete-after --exclude '.git/' /local/dir/ user@remote:/remote/dir/
--include包括特定文件或目录:在排除前包括某些文件或目录。rsync -av --delete-after --include '*.txt' --exclude '*' /local/dir/ user@remote:/remote/dir/

本机同步

rsync -av /源地址  /目标地址

  • -a:归档模式,表示递归复制并保留符号链接、权限、时间戳等。并且以递归方式(保证树形结构)
  • -v:详细输出,显示同步过程。
  • -r:用于拷贝目录
  • -z:传输文件时压缩

远程同步

rsync -av /源地址 user@remote_host:/目标地址

  • user:远程主机的用户名。
  • remote_host:远程主机的地址或域名。

三,作为服务器使用

目的

rsync 作为服务器使用,可以允许远程客户端访问并同步文件。这种方式可以简化多个用户或设备之间的文件同步。

实现

要设置 rsync 服务器,首先需要安装 rsync,然后配置 rsyncd.conf 文件,基本步骤如下:

  • 创建配置文件 /etc/rsyncd.conf,包含如下内容:

    • # 监听的端口
      port = 873
      #rsync默认端口
      
      # 模块定义(隐藏一些信息)
      [back(自定义一个名字,建议见名知义)]
      path = /使用本模块后,文件存放的位置
      log file=/var/log/日志文件
      comment = 备注信息
      read only = no  # 允许写入
      list = yes  # 允许列出文件
      auth users = 【secret或本地的用户】  # 允许的用户
      secrets file = /etc/rsyncd.secrets  # 密码文件路径
      
      

      使用:rsync -avz root:xxx::[模块名] 目标

  • 创建密码文件 /etc/rsyncd.secrets,格式如下:

    • user:password
      
  • 启动 rsync 服务:

    • rsync --daemon(这个时间其放到后台,类似于rsyncd)

四,高级功能使用

rsync密码设置

为了保护文件同步的安全性,可以使用密码文件来控制对 rsync 服务器的访问。(可以不是linux的用户)

  1. /etc/rsyncd.secrets 文件中添加用户和密码,格式为 user:password

  2. 确保该文件的权限设置为仅限于 rsync 用户访问:

    1. chmod 600 /etc/rsyncd.secrets

  3. 使用 rsync 客户端连接时,指定 --password-file 选项:(待用)

    1. rsync --password-file=/etc/rsyncd.secrets user@remote_host::模块名 /path/to/destination/

    2. --password-file=/etc/rsyncd.secrets

      1. 指定存储用户凭据的文件,rsync 会从此文件中读取密码进行身份验证。
      2. 如果你在 rsync 模块的配置中已经指定了密码文件的位置,那么在命令中可以省略 --password-file 选项。

http://www.kler.cn/a/374151.html

相关文章:

  • 开源一个开发的聊天应用与AI开发框架,集成 ChatGPT,支持私有部署的源码
  • 100种算法【Python版】第9篇——二分法
  • 【HarmonyOS NEXT】使用 Navigation 对折叠屏设备页面进行分栏展示,优化 UI 交互
  • 【书生.浦语实战营】——入门岛
  • 若依框架部署到服务器后头像资源访问404
  • 蓝桥杯普及题
  • 第72期 | GPTSecurity周报
  • 书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py
  • 如何使用 Vue CLI 创建 Vue 项目?
  • Java迭代器:深入理解与应用
  • 二百七十四、Kettle——ClickHouse中对错误数据表中进行数据修复(实时)
  • Spark集群管理脚本详解
  • 【数据结构-邻项消除】力扣2211. 统计道路上的碰撞次数
  • UDP-鼠李糖合成酶基因的克隆与鉴定-文献精读76
  • 系统学习CFD,常见收敛问题、及如何与机器学习相结合
  • zynq PS端跑Linux响应中断
  • windows下安装python库wordCloud报错
  • 【PGCCC】Postgresql BgWriter 原理
  • Java实现数据去重的几种方案及其去重原理
  • 【skywalking】监控 Spring Cloud Gateway 数据
  • flask框架用法介绍(一)
  • 从零学习大模型(十)-----剪枝基本概念
  • 【SSE】前端vue3使用SSE,EventSource携带请求头
  • H2 Database IDEA 源码 DEBUG 环境搭建
  • VuePress文档初始化请求过多问题探讨
  • 设计模式07-结构型模式(装饰模式/外观模式/代理模式/Java)