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 选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905527.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab实现白鲸优化算法(BWO)求解路径规划问题

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 白鲸优化算法(BWO)是一种受自然界白鲸捕食行为启发的新型优化算法,它通过模拟白鲸的群体捕猎策略和社会互动来探索问题的最优解。BWO因其强大的全局搜索能力和高效的局部搜索能…

python 模块和包、类和对象

模块 模块是包含 Python 代码的文件,通常用于组织相关的函数、类和其他语句。模块可以被导入并在其他 Python 文件中使用。 创建模块 假设你创建了一个名为 mymodule.py 的文件,内容如下: # mymodule.pydef greet(name): return f"…

SpringBoot节奏:Web音乐网站构建手册

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

使用Django REST framework构建RESTful API

使用Django REST framework构建RESTful API Django REST framework简介 安装Django REST framework 创建Django项目 创建Django应用 配置Django项目 创建模型 迁移数据库 创建序列化器 创建视图 配置URL 配置全局URL 配置认证和权限 测试API 使用Postman测试API 分页 过滤和排序…

MySQL 9从入门到性能优化-系统信息函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场…

$tab的所有用法以及vue关闭页面的方法汇总

1、最简单粗暴的就是直接window.close(); 2.可以设置一个窗口的显示隐藏变量,比如点击新增按钮时,新增页面窗口就进行显示,点击关闭就把这个值置为flase 在最外层绑定open 初始值设为false 点击新增和修改按钮时,把状态置为true即…

深度学习(八) TensorFlow、PyTorch、Keras框架大比拼(8/10)

一、深度学习框架概述 深度学习框架在当今人工智能和机器学习领域中占据着至关重要的地位。其中,TensorFlow 由 Google 开发,自 2015 年发布以来,凭借其灵活的计算图、自动微分功能以及跨平台支持等特点,迅速成为主流深度学习框架…

<HarmonyOS第一课>HarmonyOS SDK开放能力简介的课后习题

不出户&#xff0c;知天下&#xff1b; 不窥牖&#xff0c;见天道。 其出弥远&#xff0c;其知弥少。 是以圣人不行而知&#xff0c;不见而明&#xff0c;不为而成。 本篇<HarmonyOS第一课>HarmonyOS SDK开放能力简介是简单介绍了HarmonyOS SDK&#xff0c;不需要大家过多…

WPF自定义日历控件Calendar 的方法

推荐下载地址 https://www.haolizi.net/example/view_2107.html <UserControl.Resources><local1:DayConverter x:Key"DayConverter"/><!--导入转换器--><Style x:Key"CalendarStyle1"TargetType"{x:Type Calendar}">&…

园区网典型技术应用

工厂、政府机关、商场、写字楼、校园、公园等&#xff0c;这些场所内为了实现数据互通而搭建的网络都可以称之为园区网 1. 园区网络架构与常见技术概述 某高校校园网络采用三层架构&#xff0c;核心层和汇聚层各有其明确的职责&#xff1a; 核心层&#xff1a;部署两台核心交…

计算机考研,选择西安交通大学还是哈工大?

C哥专业提供——计软考研院校选择分析专业课备考指南规划 经过全面分析&#xff0c;2025年考研西安交通大学和哈尔滨工业大学计算机专业的报考难度对比如下&#xff1a; 西安交通大学计算机专业 > 哈尔滨工业大学计算机专业 对于想要报考985高校计算机专业但核心目标是优…

3D游戏阴影技术综合指南

在维姆文德斯 (Wim Wenders) 的优秀作品《完美的日子》 (Perfect Days) 的结尾&#xff0c;男主角平山 (Hirayama) 在桥下喝啤酒&#xff0c;因为他看到一个商人在追求他的暗恋对象。突然&#xff0c;商人在桥下加入了他。事实证明&#xff0c;事情并没有那么简单&#xff0c;但…

Unity 2D寻路导航 NavMeshPlus解决方案

插件的github主页 h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding 这个插件是基于新版3D寻路导航制作的&#xff0c;所以你可能需要看一下这篇文章 新旧Navmash 寻路导航组件对比 附使用案例与实用教程链接-CSDN博客 这行代码agent.updateUpAxis false 一定要为代理单位…

K8s企业应用之容器化迁移

#作者&#xff1a;曹付江 K8s企业应用之容器化迁移 Kubernetes&#xff08;K8s&#xff09;中的企业应用容器化迁移是一个复杂但重要的过程&#xff0c;平滑的迁移应用&#xff0c;可以让开发、运维、测试人员循序渐进的学习和掌握Kubernetes&#xff0c;通常包括以下步骤&am…

Flash的语音ic型号有哪些?

深圳唯创知音电子有限公司在语音技术领域具有深厚的积累&#xff0c;其Flash语音IC产品凭借高性能和广泛的应用领域&#xff0c;在市场上占据了一席之地。以下是对该公司Flash语音IC产品的详细介绍&#xff1a; 一、产品概述 Flash语音IC是一种采用Flash存储技术的语音芯片&…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候&#xff0c;会不会想要学习&#xff1f; 或者有没有考公人&#xff0c;下班要学习的&#xff1f; 上班时间摸鱼&#xff0c;下班时间不够学习&#xff1f; 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来刷粉笔题 粉笔插件名称&#xff1a;…

PPT制作新选择:本地部署PPTist结合内网穿透实现实时协作和远程使用

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击跳转到网站】 前…

文件上传知识梳理:原理、工具、绕过、利用与防御

文章简介&#xff1a; 本文全面梳理了文件上传相关知识&#xff0c;包括文件上传漏洞的原理及危害&#xff0c;介绍了 Webshell 相关工具&#xff08;如冰蝎、哥斯拉、蚁剑&#xff09;&#xff0c;详细阐述了文件上传绕过检测的多种方法&#xff08;前端检测、服务端检测的各…

SpringMvc参数传递

首先对于post请求汉字乱码需要进行过滤器配置 普通参数传递 直接传递 客户端传递的属性名与我的bean中的函数参数名相同 映射传递RequestParam("XXX") 在我们方法参数中定义一个与客户端属性名一致 并绑定参数 POJO实体类传递 嵌套POJO传递 数组likes参数传递…