rsync远程同步+inotify实时同步部署

news2024/9/21 7:46:35

文章目录

  • 一、rsync简介
    • 1.rsync同步方式
    • 2、备份的方式
    • 3.rsync同步源
  • 二、rsync命令基本用法
  • 三、配置源的两种表达方法
  • 四、配置服务端与客户端的实验
    • 1.将 Master 服务器数据备份到 Slave 服务器
    • 2.配置Rsync+Inotify 实时同步
  • 五、rsync的应用场景
  • 总结


一、rsync简介

Rsync(Remote Sync)是一个功能丰富、快速和灵活的文件复制和同步工具。它以增量复制的方式工作,能够仅复制源和目标之间发生变化的文件或部分文件,从而减少了数据传输的时间和网络带宽的消耗。

Rsync 使用一个特殊的算法来识别文件的差异,并仅传输发生变化的部分,以实现高效的文件同步和备份。它还支持多种模式和选项,使其非常适应各种不同的应用场景。

① rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。

② rsync软件支持跨平台,适用于unix/ linux/windows等多种操作系统平台

③ rsync是一个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制

④ 以其delta-transfer算法闻名。

⑤ rsync监听端口:873

⑥ rsync运行模式:C/S

1.rsync同步方式

1、完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。

2、差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。

3、增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)

2、备份的方式

1、发起端:负责rsync 同步操作的客户机叫做发起端,通知服务器我要备份你的数据

2、备份源:负责响应来自客户机rsync 同步操作的服务器叫做备份源,需要备份的服务器

3、服务端:运行rsyncd服务,一般来说,需要备份的服务器

4、客户端:存放备份数据

3.rsync同步源

rsync同步源:指备份操作的远程服务器,也称备份源。

下行同步:下行同步是将文件从远程或源端同步到本地或目标端。
在下行同步(下载)中,同步源负责提供文档的原始位置,发起端应对该位置有读取权限。

上行同步:上行同步是将文件从本地或源端同步到远程或目标端。
在上行同步(上传)中,同步源负责提供文档的目标位置,发起端应对该位置具有写入权限。
在这里插入图片描述

二、rsync命令基本用法

基本格式:rsync [选项] 原始位置 目标位置

常用选项:

-r递归模式,包含目录及子目录中的所有文件
-l对于符号链接文件仍然复制为符号链接文件
-v显示同步过程的详细信息
-z在传输文件时进行压缩
-a归档模式,保留文件的权限、属性等信息,等同于组合选项”-rlptgoD“
-p保留文件的权限标记
-t保留文件的时间标记
-g保留文件的数组标记 (仅超级用户使用)
-o保留文件的属主标记(仅超级用户使用)
-H保留硬链接文件
-A保留ACL属性信息
-D保留设备文件及其他特殊文件
–delete删除目标位置有而原始位置没有的文件
–checksum根据校验和(而不是文件大小,修改时间)来决定是否跳过文件

三、配置源的两种表达方法

格式一:
用户名@主机地址::共享模块名
rsync -avz backuper@192.168.10.22::wwwroot /opt/

格式二:
rsync://用户名@主机地址/共享模块名
rsync -avz rsync://backuper@192.168.10.22/wwwroot /opt/

四、配置服务端与客户端的实验

配置环境

Master   	CentOS7	192.168.40.105	    rsync
Slave      	CentOS7	192.168.40.106	    rsync / inotify-tools-3.14.tar.gz

1.将 Master 服务器数据备份到 Slave 服务器

master(192.168.40.105):

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#关闭防火墙及安装机制
 
yum install -y httpd 
#rsync系统一般已默认安装,安装httpd是为了生成/var/www/html目录(后续会用到作为共享目录)
 
vim /etc/rsyncd.conf
#编辑rsync配置文件
uid = root
gid = root
use chroot = yes
address = 192.168.40.105
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.40.0/24
[wwwroot]        
path = /var/www/html
comment = Document Root of www.zzh.com
read only = yes
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper	
secrets file = /etc/rsyncd_users.db

----详解----
uid = root											#用户id,表示共享权限能执行的身份
gid = root											#组id
use chroot = yes									#开启,禁锢在源目录,表示允许在访问我备份的目录或文件的时候,使用的角色是root,同时你访问本地目录时拥有的也是root权限
address = 192.168.40.105							#监听地址
port 873											#默认端口号为873
log file = /var/log/rsyncd.log						#日志文件存放位置
pid file = /var/run/rsyncd.pid						#存放进程id的文件位置
hosts allow = 192.168.40.0/24						#允许访问的主机网段,有点类似于黑白名单
[wwwroot]        									#共享模块的名称,rsync默认调用该模块,默认我调用的路径是该模块指定的路径
path = /var/www/html								#源目录路径
comment = Document Root of www.zzh.com				#
read only = yes										#是否为只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z	#同步时不再压缩的文件类型,因为同步时,-avz已经进行压缩
auth users = backuper									#授权用户,使用wwwroot模块的用户是哪个用户,多个账户以空格隔开
secrets file = /etc/rsyncd_users.db					#存放账号信息的数据文件,一行一个
----
 
vim /etc/rsyncd_users.db
backuper:123456
#编辑用户账号文件,固定格式为[名称:密码],一行一个
 
chmod 600 /etc/rsyncd_users.db
#官方要求,最好只是赋权600!
 
rsync --daemon
#开启服务
netstat -natp | grep rsync
#检测端口号,确认服务是否成功开启

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

slave:(192.168.59.112):

systemctl stop firewalld.service 
setenforce 0

将指定的资源下载到本地/opt 目录下进行备份。
格式一:
rsync -avz backuper@192.168.10.18::wwwroot /opt/					#密码123456

格式二:
rsync -avz rsync://backuper@192.168.10.18/wwwroot /opt/

#免交互格式配置:
echo "123456" > /etc/server.pass
chmod 600 /etc/server.pass

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.配置Rsync+Inotify 实时同步

Master(192.168.40.105)

vim /etc/rsyncd.conf
read only = no
 
kill `cat /var/run/rsyncd.pid`
netstat -natp | grep rsync
 
rsync --daemon
netstat -natp | grep rsync
 
chmod 777 /var/www/html

在这里插入图片描述
在这里插入图片描述
server(192.168.10.28)

cat /proc/sys/fs/inotify/max_queued_events
cat /proc/sys/fs/inotify/max_user_instances 
cat /proc/sys/fs/inotify/max_user_watches 
 
vim /etc/sysctl.conf 
 
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
 
sysctl -p

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#放入安装包解压
tar zxvf inotify-tools-3.14.tar.gz -C /opt
 
 
cd /opt/inotify-tools-3.14/
 
./configure
make && make install

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以先执行“inotifywait”命令,然后另外再开启一个新终端向 /opt/data 目录下添加文件、移动文件,在原来的终端中跟踪屏幕输出结果。
inotifywait -mrq -e modify,create,move,delete /opt/data

#选项“-e”:用来指定要监控哪些事件
#选项“-m”:表示持续监控
#选项“-r”:表示递归整个目录
#选项“-q”:简化输出信息

在这里插入图片描述
在另外一个终端编写触发式同步脚本(注意,脚本名不可包含 rsync 字符串,否则脚本不生效)

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /opt/data/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/data/ backuper@192.168.40.105::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
##while判断是否接收到监控记录
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

chmod +x /opt/inotify.sh
chmod 777 /opt/data/
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify.sh' >> /etc/rc.d/rc.local				#加入开机自动执行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

五、rsync的应用场景

1、增量同步

2、备份/迁移:可以作为辅助工具(mysql 主从复制 rsync +inotify ——》趋于一致 双向同步——MM,但是只能在并发量不大的时候可以用)

3、假设mysql 从主机A迁移到主机B(一主两从模式)

一主两从模式迁移方案

①确定迁移的时间、业务线停止的时间、要写文档描述具体操作,要发邮件审批

②确认迁移后的节点的环境问题(资源环境 + 系统依赖环境 + mysql内部的格式环境)

1)例如自增长,自增长可能会导致主从复制不一致的情况

2)版本迁移问题,比如说低版本向高版本迁移。两个版本中的差异比较大,数据迁移比较重要,需要和研发沟通,让研发开发一个工具,让低版本可以转成高版本工具格式,使用工具迁移)

③ 如果数据库是相同版本,可以用rsync + inotify持续同步

④ 测试、之前还要编写回滚方案

⑤ 提交检修申请 22:00 - 00:00


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 储存过程

前言 存储过程(Stored Procedure)是一组预定义的SQL语句集合,它们被保存在数据库中并可供重复调用。存储过程可以接受参数、执行查询和更新操作,并返回结果。使用存储过程,可以实现复杂的业务逻辑和数据操作&#xff0…

浅谈微服务异步解决方案

导言 异步是一种设计思想,不是设计目的,因此不要为了异步而异步,要有所为,有所不为。 异步不是『银弹』, 避免试图套用一个『异步框架』解决所有问题, 需要根据不同的业务特点或要求,选择合适的…

助力青少年科技创新人才培养,猿辅导投资1亿元设立新基金

近日,在日本千叶县举办的2023年第64届国际数学奥林匹克(IMO)竞赛公布比赛结果,中国队连续5年获得团体第一。奖牌榜显示,代表中国参赛的6名队员全部获得金牌。其中,猿辅导学员王淳稷、孙启傲分别以42分、39分…

Ubuntu 离线部署的常见操作

Ubuntu 离线安装的常见操作 **说明:**很多情况下,生产环境都是离线环境,然而开发环境都是互联网的环境,因此部署的过程中需要构建离线安装包; 1. 下载但是不安装 # 例如使用 apt 下载 wireshark 安装包 sudo apt download wireshark # 下载…

gitee修改代码提交操作步骤说明

一,简介 本文主要介绍如何从gitee仓库下载文件,本地修改,本地提交,然后再push到远程服务器的操作步骤。供参考,欢迎一起讨论交流~ 二,操作步骤 总的操作步骤分为以下几步 1,远程服务器下载文…

Seata的四种分布式事务模式

文章目录 一、XA模式1、XA模式原理2、seata的XA模式3、优缺点4、代码实现 一、XA模式 1、XA模式原理 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的…

【动态规划】子序列系列

文章目录 动态规划(子序列系列)1. 最长递增子序列2. 摆动序列3. 最长递增子序列的个数4. 最长数对链5. 最长定差子序列6. 最长的斐波那契子序列的长度7. 最长等差数列8. 等差数列划分 || - 子序列 动态规划(子序列系列) 1. 最长递…

正泰电力携手图扑:VR 变电站事故追忆反演

VR(Virtual Reality,虚拟现实)技术作为近年来快速发展的一项新技术,具有广泛的应用前景,支持融合人工智能、机器学习、大数据等技术,实现更加智能化、个性化的应用。在电力能源领域,VR 技术在高性能计算机和专有设备支…

<C++>二、类和对象-构造函数

1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生…

为Win12做准备?微软Win11 23H2将集成AI助手:GPT4免费用

微软日前确认今年4季度推出Win11 23H2,这是Win11第二个年度更新。 Win11 23H2具体有哪些功能升级,现在还不好说,但它会集成微软的Copilot,它很容易让人想到多年前的“曲别针”助手,但这次是AI技术加持的,Co…

使用Vue+CSS实现汉堡图标过渡为叉号图标,有点意思

本文给大家分享三个具有过渡效果的汉堡图标,当点击汉堡图标时,过渡为叉号图标。这种具有过渡特效的图标挺炫酷的,感觉一下子给网页增加一点新颖特色。早在2015年左右,国外挺多优秀门户网站都有使用类似的图标,那时不知…

Mysql之binlog日志浅析

一、binlog日志简介 Binlog是MySQL数据库中的二进制日志,用于记录数据库中所有修改操作,包括增删改等操作。binlog以二进制格式保存,可以通过解析binlog文件来查看数据库的操作历史记录。binlog日志可以用于数据恢复、数据备份、数据同步等场…

智慧水务和物联网智能水表在农村供水工程中的应用

摘 要:随着社会的进步和各项事业的飞速发展,人民生活水平的逐步提升,国家对农村饮水安全有了更高的要求,为了进一步提升农村供水服务的质量,利用现代化、信息化科学技术提升农村供水服务质量,提高用水管理效…

对象分割技术在图像重绘上的运用

今年早些时候,Meta AI 发布了他们的新开源项目: Segment Anything Model(SAM) ,在计算机视觉社区引起了巨大的轰动。SAM 是一种快速分割系统,它擅长于对不熟悉的物体和图像进行零样本泛化,而不需要额外的训练。 在本教…

安全测试国家标准解读——函数调用安全、异常处理安全、指针安全

下面的系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解,该标准是2020年4月28日,由国家市场监督管理总局、国家标准化管理委员会发布,2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理&…

DCDC下垂控制算法

在并联的DC/DC转换器系统中,下垂控制(Droop Control)是一种常见的方法,用以实现在不同模块之间的功率均衡。在下垂控制策略中,每一个转换器的输出电压会随着负载的增加而减小,这样能够保证所有的转换器都在…

CSS font-family 等宽字体

CSS font-family 等宽字体 font-family: "Lucida Console", Consolas, "Courier New", Courier, monospace; font-family: Courier New, Courier, Lucida Console, Consolas, monospace; font-family: Courier, Lucida Console, Consolas, Courier New,…

【数学建模】2023 深圳杯 东三省 数学建模 B题 :电子资源版权保护问题 (基于DCT的暗水印信息嵌入模型)

在文章末尾的公众号回复:深圳杯B题,获取完整内容。 本文的文本、公式、代码都是部分展示。 文章目录 一、题目二、思路 与 解答2.1 问题一2.11 LSB 方法测试2.12 LSB 方法建模 2.2 问题二2.3 问题三2.31 方法与步骤概述2.32 基于DCT的暗水印信息嵌入模型…

第八章 HL7 架构和可用工具 - 测试转换

文章目录 第八章 HL7 架构和可用工具 - 测试转换显示段地址显示字段地址批量消息 测试转换 第八章 HL7 架构和可用工具 - 测试转换 显示段地址 要显示段地址,请将光标悬停在阴影列中的段名称上。工具提示显示以下内容: 在虚拟属性路径中使用的段地址该…

CSS样式中颜色与颜色值的应用

使用CSS描绘页面样式时,颜色是其中不可或缺的,无论是对文本、背景还是边框、阴影,我们都写过无数代码用来增添颜色。而为了让网页的色彩表现更出色,我们很有必要完整梳理下CSS中的色彩。 要讲清楚CSS中的颜色,离不开颜…