手机网站建设 技术规范,app定制开发企业,网页链接,网页游戏排行大全目录
一 Rsync 简介
1#xff0c;rsync 是什么
2#xff0c;rsync 中的发起端 同步源
3#xff0c;同步方式
4#xff0c;备份的方式
5#xff0c;常用Rsync命令
6#xff0c; 配置源的两种表达方法
7#xff0c;rsync做本地复制时与cp 对比
二#xff…目录
一 Rsync 简介
1rsync 是什么
2rsync 中的发起端 同步源
3同步方式
4备份的方式
5常用Rsync命令
6 配置源的两种表达方法
7rsync做本地复制时与cp 对比
二下行同步与 上行同步
1上行同步
2下行同步
3总结
4架构图
5如何记忆
类比网络流量
三 实验模拟rsync 本地同步
编辑
四 实验模拟rsync 远程同步
1实验环境
299服务端
2.1 改配置文件
2.2 为备份账户创建数据文件
2.3 保证所有用户对源目录/var/www/html 都有读取权限
2.4 启动 rsync 服务程序
3 77客户端 发起端
3.1 两种方式请求同步
3.2 做免密交互
3.3 请求同步中 delete 的用法
五 rsync 常见报错
六 总结
1请求同步语法
2生产环境rsync 使用ssh 账户 一 Rsync 简介
1rsync 是什么
rsyncRemote Sync远程同步 是一个开源的快速备份工具可以在不同主机之间镜像同步整个目录树支持增量备份并保持链接和权限且采用优化的同步算法传输前执行压缩因此非常适用于异地备份、镜像服务器等应用。 Rsync 是 Linux 系统下的数据镜像备份工具使用快速增量备份工具 Remote Sync 可以远程同步 可以在不同主机之间进行同步可实现全量备份与增量备份保持链接和权限且采用优化的同步算法 传输前执行压缩因此非常适合用于架构集中式备份或异地备份等应用。同时Rsync支持本地复制或者与其他 SSH、rsync 主机同步
2rsync 中的发起端 同步源
在远程同步任务中负责发起rsync同步操作的客户机称为发起端而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中同步源负责提供文件的原始位置发起端应对该位置具有读取权限。
3同步方式
1完整备份每次备份都是从备份源将所有的文件或目录备份到目的地。 2差量备份备份上次完全备份以后有变化的数据他针对的上次的完全备份他备份过程中不清除存档属性。 3增量备份备份上次备份以后有变化的数据他才不管是那种类型的备份有变化的数据就备份他会清除存档属性 4备份的方式
1、发起端负责rsync 同步操作的客户机叫做发起端通知服务器我要备份你的数据 2、备份源负责响应来自客户机rsync 同步操作的服务器叫做备份源需要备份的服务器 3、服务端运行rsyncd服务一般来说需要备份的服务器 4、客户端存放备份数据 5常用Rsync命令 基本格式rsync [选项] 原始位置 目标位置 常用选项 -r递归模式包含目录及子目录中的所有文件。 -l对于符号链接文件仍然复制为符号链接文件。-v显示同步过程的详细verbose信息。-z在传输文件时进行压缩compress。-a归档模式保留文件的权限、属性等信息等同于组合选项“-rlptgoD”。 -p保留文件的权限标记。 -t保留文件的时间标记。 -g保留文件的属组标记仅超级用户使用。 -o保留文件的属主标记仅超级用户使用。 -H保留硬连接文件。 -A保留 ACL 属性信息。 -D保留设备文件及其他特殊文件。--delete删除目标位置有而原始位置没有的文件。 --checksum根据校验和而不是文件大小、修改时间来决定是否跳过文件。 6 配置源的两种表达方法
格式一 用户名主机地址::共享模块名rsync -avz backuper192.168.10.22::wwwroot /opt/
格式二 rsync://用户名主机地址/共享模块名rsync -avz rsync://backuper192.168.10.22/wwwroot /opt/ 7rsync做本地复制时与cp 对比
cp: 将 我们源文件完整复制 到 指定路径下 “全备
rsync 本地复制:
①首先就按那个源文件和目标位置的文件对比找出差异部分
②根据目的位置的文件与源文件差异的部分进行一致性的同步 即 增量复制与全量复制 rsync在本地复制时rsync 仍然保留了其核心特性——增量复制。它通过比较源文件和目标文件的内容仅复制差异部分这对于复制大型文件或频繁更新的目录非常高效尤其是在多次重复复制同一源到同一目标时只需传输变动部分大大节省时间和带宽。 cp相比之下cp 执行的是全量复制。每次复制时不论目标文件是否存在或是否与源文件有差异cp 都会完整地重新复制整个文件内容。对于初次复制或源文件完全改变的情况cp 和 rsync 效果相当。但在后续的重复复制中如果只有少量数据变动cp 的效率较低因为它会无差别地复制整个文件。 二下行同步与 上行同步
rsync 上行同步Upstream Sync和 rsync 下行同步Downstream Sync是使用 rsync 工具进行数据同步时的两种不同方向的同步策略它们分别描述了数据流动的方向 1上行同步
上行同步是指从本地发起端向远程同步源服务器推送数据的过程。在这种模式下
本地机器作为数据的源头通常包含需要更新或备份到远程服务器的文件和目录。远程服务器作为数据的接收端等待接收并整合来自本地机器的更改。
上行同步常见于以下场景
备份本地数据到云端用户将个人计算机或服务器上的重要数据同步到云存储服务或远程备份服务器确保数据的安全性和可用性。代码版本控制提交开发者将本地开发环境中的代码更改推送到中央代码仓库如Git服务器实现团队协作和版本控制。日志或监控数据上传设备或系统将生成的日志文件、监控数据等实时或定时上传到中心分析服务器便于集中管理和分析。
实时上行同步可以通过结合 rsync 和 inotify 等工具实现。inotify 能够监控本地文件系统的事件如文件创建、修改、删除一旦检测到变化立即触发 rsync 命令执行同步操作确保远程服务器几乎实时地获得本地的最新数据。 2下行同步
下行同步则是从远程同步源服务器拉取数据到本地发起端的过程。在这个过程中
远程服务器作为数据的源头存储着需要同步到本地机器的文件和目录。本地机器作为数据的接收端通过 rsync 命令请求并接收远程服务器上的数据更新。
下行同步常用于
软件分发与更新本地机器从中央软件仓库下载最新的软件包、更新文件或配置信息。数据恢复与回滚从备份服务器下载最近的备份数据到本地用于恢复丢失的数据或回滚到先前的状态。内容分发网络CDN刷新边缘节点从源站下载更新的内容确保 CDN 提供的服务始终与源站内容一致。 3总结
rsync 上行同步和rsync 下行同步的主要区别在于数据流动的方向
上行同步是从本地到远程用于备份、提交更新或上传数据到中央服务器。下行同步是从远程到本地用于下载、恢复数据或更新本地内容至最新状态。
在实际使用中根据业务需求和数据流向选择合适的同步方向并可以结合定时任务、事件驱动机制如 inotify等方式实现自动化、实时的同步过程。 4架构图 5如何记忆
记忆“rsync 上行同步”与“rsync 下行同步”的概念可以借助以下几种方法来帮助您加深印象和理解
类比网络流量
上行同步类比互联网中的“上行流量”即数据从您的计算机本地上传到互联网上的某个服务器远程。想象您正在上传一个文件到云存储服务或者提交代码到远程仓库数据从您的电脑“向上”流向互联网上的目标位置。
下行同步与此相反类比互联网中的“下行流量”即数据从互联网上的服务器远程下载到您的计算机本地。想象您正在下载一个软件更新或从备份服务器恢复数据数据从互联网“向下”流向您的电脑。 三 实验模拟rsync 本地同步
类似cp 的用法 四 实验模拟rsync 远程同步
1实验环境
此次搭建rsync 下行同步 99为服务端 77为客户端
即客户端同步服务端的数据 299服务端 2.1 改配置文件
代码如下
vim /etc/rsyncd.conf #添加以下配置项
uid root
gid root
use chroot yes #禁锢在源目录
address 192.168.10.18 #监听地址
port 873 #监听端口 tcp/udp 873可通过cat /etc/services | grep rsync查看
log file /var/log/rsyncd.log #日志文件位置
pid file /var/run/rsyncd.pid #存放进程 ID 的文件位置
hosts allow 192.168.10.0/24 #允许访问的客户机地址
dont compress *.gz *.bz2 *.tgz *.zip *.rar *.z #同步时不再压缩的文件类型[wwwroot] #共享模块名称
path /var/www/html #源目录的实际路径
comment Document Root of www.kgc.com
read only yes #是否为只读
auth users backuper #授权账户多个账号以空格分隔
secrets file /etc/rsyncd_users.db #存放账户信息的数据文件#如采用匿名的方式只要将其中的“auth users”和“secrets file”配置项去掉即可。
#为备份账户创建数据文件配置文件显示如下 2.2 为备份账户创建数据文件
即放用户名和密码的 记得加权限 只能加600 2.3 保证所有用户对源目录/var/www/html 都有读取权限 2.4 启动 rsync 服务程序
#启动 rsync 服务以独立监听服务的方式守护进程运行 查看是否启动 3 77客户端 发起端
3.1 两种方式请求同步 格式一 用户名主机地址::共享模块名rsync -avz backuper192.168.10.22::wwwroot /opt/ 格式二 rsync://用户名主机地址/共享模块名rsync -avz rsync://backuper192.168.10.22/wwwroot /opt/ 方法1 方法2 3.2 做免密交互
每次客户端请求同步时都需要 输密码很烦。这边做免密交互 第一步创建一个密码文件 并加读写权限 第二步 在请求同步的时候指定密码从这个文件里就可以了 3.3 请求同步中 delete 的用法
首先可以看到99 服务端中 有两个文件 77 客户端 去同步 当然也会变成两个文件 当我们把 99 服务端的1.txt 删除 正常同步时77 客户端没变
需要加 --delete 即删除目标位置有而原始位置没有的文件 可以看到他会把除了2.txt 之外的文件全部删了 因为99服务端的 /var/www/html/ 里面只有2.txt 五 rsync 常见报错
我们在使用rsync 时候 经常会出现下面的报错 ERROR: auth failed on module wwwroot
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver3.0.9]解决此问题的步骤可能包括 检查认证凭据 确认使用的用户名、密码、密钥等认证信息是否正确是否适用于目标系统上的“wwwroot”模块。必要时更新或重新配置凭据。 确认权限设置 确保执行 rsync 操作的用户具有足够的权限访问和操作“wwwroot”模块。可能需要与系统管理员沟通核实或调整权限设置。 检查防火墙和网络设置 确保网络连接畅通且防火墙规则没有阻止 rsync 协议的正常通信。如有必要临时关闭防火墙或添加相应的允许规则进行测试。 查看 rsync 服务器配置 如果您正在连接到一个专门的 rsync 服务器检查其配置文件如 /etc/rsyncd.conf确保“wwwroot”模块的相关配置如 auth users、secrets file、hosts allow 等无误。 升级或降级 rsync 版本 虽然版本 3.0.9 的问题不大可能但如果怀疑是 rsync 版本兼容性问题可以尝试升级或降级到其他稳定版本进行测试。 六 总结
1请求同步语法
格式一 用户名主机地址::共享模块名 rsync -avz backuper192.168.10.22::wwwroot /opt/
格式二 rsync://用户名主机地址/共享模块名 rsync -avz rsync://backuper192.168.10.22/wwwroot /opt/ 2生产环境rsync 使用ssh 账户
例如假设您有一个名为 user1 的 ssh 账户要从远程主机 remote.example.com 上的 /home/user1/data 目录同步到本地的 /local-backup 目录可以使用以下命令
1rsync -avz user1remote.example.com:/home/user1/data /local-backup
这里的 -avz 是 rsync 的常用选项分别代表
-a归档模式保留文件属性如权限、时间戳等并递归同步目录。-v详细输出显示同步过程中的详细信息。-z压缩传输启用数据压缩以减少网络传输量。
在执行上述命令时rsync 会利用 ssh 进行身份验证和数据传输。这意味着
身份验证rsync 会使用您本地机器上与 user1 对应的 ssh 公钥私钥对如果已配置无密码登录或提示您输入 user1 的密码来完成身份验证。数据传输一旦身份验证通过rsync 会在 ssh 加密通道上进行数据同步确保传输过程中数据的保密性。
综上所述rsync 完全可以直接使用 ssh 账户来进行文件同步操作只需在命令中正确指定 ssh 用户名、远程主机名和相应的路径即可。如果您已经设置了 ssh 密钥对以实现无密码登录rsync 过程将更加便捷且无需人工干预。