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

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.mrgr.cn/news/62511.html

相关文章:

  • 火山引擎VeDI数据服务平台:在电商场景中,如何解决API编排问题?
  • 【339】基于springboot的新能源充电系统
  • 工作总结PPT模板免费下载,有这些网站就够了
  • C++ 在项目中使用vim
  • 智能家居10G雷达感应开关模块,飞睿智能uA级别低功耗、超高灵敏度,瞬间响应快
  • 计算机毕业设计——ssm基于HTML5的互动游戏新闻网站的设计与实现录像演示2021
  • Python自动化数据备份与同步
  • 工业设计岗位18K招聘,要求必须会AI,但AI究竟该怎么学呢?
  • HJ108 求最小公倍数
  • 《JVM第3课》运行时数据区
  • Java开发者的Python快速进修指南:文件操作
  • 键盘监听事件xss攻击
  • C++学习日记 | LAB 11 类中的动态内存管理
  • (五)Web前端开发进阶2——AJAX
  • Fsm3
  • Diving into the STM32 HAL-----USART
  • X86下fftw3库的编译和链接undefined reference to fftwf_malloc
  • 什么是ajax,为什么使用ajax?ajax都有哪些优点和缺点?
  • 006 单词倒序
  • 使用sql计算每天新增用户的ltv1、ltv2以及次留
  • 批量删除redis数据【亲测可用】
  • 校园社团信息管理:Spring Boot技术的优势与实现
  • 期货跟单、量化交易模拟演示系统
  • Abaqus自己构建材料库导入材料库
  • AUTOSAR CP中的CDD复杂驱动介绍
  • Javaweb梳理3——SQL概述+DDL语句1