如何实现rsync远程同步(配置rsync下行同步、rsync+inotity实时同步)

IRSYNC (file transfer utility)-开源 灵活,安全的文件传输实用程序,类似于rsync,可在同时具有LAN和WAN(低或高延迟网络)的网络上为大文件和小文件实现高传输率。 支持交互式批处理以及脚本操作。 立即下载

一、什么是rsync

注:CentOS7自带rsync工具无需安装

  • 一款快速增量备份工具
  • Remote sync,远程同步
  • 支持本地复制,或者与其他SSH、rsync主机同步
  • 也可以在不同主机(例如:其他SSH、rsync主机)之间镜像同步整个目录树,支持增量备份,并保持钳接和权限。
  • 官方网站:https://rsync.samba.org/

二、rsync同步源

在远程同步任务中,负责发起rsync同步操作的客户机成为发起端,而负责相应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。
例:A服务器同步B服务器的数据,B服务器就是备份源
反过来,B服务器同步A服务器的数据,那么A服务器就是备份源
在这里插入图片描述

三、如何配置rsync同步源。

rsync作为同步源时以守护进程运行,为其他客户及提供备份源。配置rsync不同源需要建立配置文件rsyncd.conf,创建备份账号,然后将rsync程序以“–daemon”选项运行。

rmp包安装rsync,在RHEL6系统盘中,默认有该组件。

1.具体步骤

  • 建立rsyncd.conf配置文件、独立的rsunc账号文件

    • 配置文件rsyncd.conf
      • 需手动配置,语法类似于Samba配置
      • 认证配置auth users、secrets file,不加则为匿名
    • rsync账号文件
      • 采用“用户名:密码”的格式记录,每行一个用户记录
        • 独立的账号数据,不依赖系统账号
  • 启用rsync服务

    • 通过 --daemon独自提供服务:rsync --daemon
    • 可以通过执行kill $(cat /var/run/rsyncd.pid)关闭服务

2.rsync的命令及其参数

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

3.配置源的两种方式

将指定的资源下载到本地/root目录下进行备份
格式一:

用户名@主机地址::共享模块名
例如:
backuper@192.168.235.10::wwwroot /opt

格式二:

rsync://用户名@主机地址/共享模块名
例如:
rsync://backuper@192.168.235.10/wwwroot /opt

4.面交互格式

echo "密码" > /etc/密码文件
chmod 600 /etc/密码文件

#设置周期性任务
crontab -e
30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/密码文件 backuper@192.168.235.10::wwwroot /opt

systemctl restart crond
systemctl enable crond

四、inotify简介

  • 简介
    Inotify 是一个 Linux内核的特性,可以监控文件系统的变动情况,并做出通知响应,辅助软件:inotify-tools

Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情
况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

将 inotify 机制与 rsync 工具相结合,可以实现触发式备份(实时同步)——只要原始位 置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。

在这里插入图片描述

4.1调整inotify内核参数(优化)

  • /etc/sysctl.conf(内核参数配置文件),需要配置
    • max_queue_events :监控事件队列大小
    • max_user_instances :最多监控实例
    • max_user_watches :每个实例最多监控文件数
    • 配置的监控数量应该大于监控目标的总文件数
vim /etc/sysctl.conf
max_queue_events = 16384
max_user_instances = 1024
max_user_watches = 1048576

4.2 使用inotify-tools辅助工具

  • inotifywait:用于持续监控,实时输出结果

    • 可监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一有变动立即输出结果
  • inotifywatch:用于短期监控,任务完成后再输出结果

    • 可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况。
例:
inotifywait -mrq -e modify,create,attrib,move,delete 文件或目录

#---------参数解释------------
-m	持续进行监控
-r	递归监控所有子对象
-q	简化输出信息
-e	指定要监控哪些事件类型
modify	修改
create	创建
attrib  属性更改
move	移动
deletc	删除

4.3 编写同步脚本

vim /opt/inotify_rsynx.sh
#!/bin/bash
#定义两个变量:监控文件,执行备份
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete 需要监控的目录或文件"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/密码文件 刚才监控的目录或文件 用户名@主机地址::共享模块名"
 
 #while read获取监控结果
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do 
    #如果rsync没有运行,执行rsync进行备份操作
    if [ $(pgrep rsync | wc -l) -eq 0 ] ; then
        $RSYNC_CMD
	fi
done

五、配置rsync下行同步

下行同步:将master服务器备份到slave服务器

主机操作系统IP地址安装包
MasterCentOS7192.168.235.10安装包
SlaveCentOS7192.168.235.20rsync / inotify-tools-3.14.tar.gz

1.Master配置

(1)安装相关的软件

#检查是否安装,一般系统已默认安装rsync
rpm -q rsync
yum -y install rsync

(2)建立/etc/rsync.conf配置文件

  • 如采取匿名的方式,只要将下面配置中的"auth users"和"secrets file"配置项去掉即可
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
address = 192.168.235.10
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.235.0/24
[wwwroot]
path = /var/www/html
comment = Document Root of www.test.com
read only = yes
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper lisi
secrets file = /etc/rsyncd_users.db
#---------配置解释----------------------------------------------
uid = root					     
gid = root					    
use chroot = yes					#禁锢在源目录
address = 192.168.235.10			#监听地址,监听本机地址
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.235.0/24		#允许同步的客户机网段
[wwwroot]					        #共享模块名称
path = /var/www/html				#源目录的实际路径(同步的目录)
comment = Document Root of www.test.com
read only = yes					    #是否为只读
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z  #同步时不再压缩的文件类型
auth users = backuper lisi			#授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db			      #存放账户信息的数据文件

(3)为备份账户创建数据文件

  • 无需建立同名系统用户
vim /etc/rsyncd_users.db
lisi:123abc

chmod 600 /etc/rsyncd_users.db

(4)保证所有用户对源目录/var/www/html (需要备份的文件目录)都有读取权限

yum -y install httpd

chmod +r /var/www/html
ls -ld /var/www/html

(5)启动rsync服务程序

  • 启动rsync服务,以独立监听服务的方式(守护进程)运行
rsync  --daemon
netstat  -natp  |  grep rsync
  • 关闭rsync服务
kill  $(cat /var/run/rsync.pid)
rm  -rf  /var/run/rsync.pid

2.Slave配置

systemctl stop firewalld.service
setenforce 0

yum -y install rsync

cd /opt
mkdir abc
chmod 777 abc

vim /etc/server.pass
123abc

chmod 600 /etc/server.pass

3. 验证

Master (192.168.235.10)

cd /var/www/html
vim 1.html

Slave (192.168..235.20)

rsync -az --delete --password-file=/etc/server.pass lisi@192.168.163.10::wwwroot /opt/abc

ls abc
  • 周期性计划任务
#设置周期性任务
crontab -e
0 2 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass lisi@192.168.163.10::wwwroot /opt/abc

systemctl restart crond
systemctl enable crond

六、rsync + inotify实时同步

1.Master配置

Master :192.168.235.10

修改rsync源服务器配置文件

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

2.Slave配置

Slave :192.168.235.20

(1)调整inotify 内核参数

  • max_queue_events(监控事件队列,默认值为16384)
  • max_user_instances(最多监控实例数,默认值为128)
  • max_user_watches(每个实例最多监控文件数,默认值为8192)
  • 当要监控的目录、文件数量较多或者变化较频繁时,建议加大这三个参数的值。
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 = 17000
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

sysctl -p

(2)安装inotify-tools

yum -y install gcc gcc-c++ make

#放入安装包
tar zxvf inotify-tools-3.14.tar.gz -C /opt

cd /opt/inotify-tools-3.14/
./configure && make && make install

(3)编写触发式同步脚本

vim /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/abc/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/abc/ lisi@192.168.235.10::wwwroot"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
	fi
done

cd /opt/
chmod +x inotify_rsync.sh
. /opt/inotify_rsync.sh &

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

3.验证

Slave :192.168.235.20

cd /opt/abc
touch test.html
ls
rm -rf test.html
ls

Master :192.168.235.10

cd /var/www/html
ls

同步搭建成功!

使用sklearn学习多项式回归(三) 1,什么是线性 我们无数次提到”线性“这个名词。在支持向量机中,我们也曾经提到最初的支持向量机只能够分割线性可分的数据,然后引入了”核函数“来帮助我们分类那些非线性可分的数据。我们也曾经说起过,比如说决策树,支持向量机是”非线性“模型。所有的这些概念,让我们对”线性“这个词非常熟悉,却又非常陌生——因为我们并不知道它的真实含义。接下来我们看看线性回归模型改进的核心之一:帮助线性回归解决非线性问题。 1.1,变量之间的线性关系 ”线性“这个词用于描述不同事物时有着不同的含义。我们最常使用的线性是指“变量 阅读详情

相关推荐

告别第三方应用!用Android原生API搭建Miracast投屏接收器

本文深入探讨如何利用Android原生API开发Miracast接收器,绕过第三方依赖,实现高效的屏幕共享。通过Wi-Fi P2P直连、反射调用隐藏API和RTSP会话协商等核心技术,为开发者提供了一套完整的Miracast接收端解决方案,适用于多屏协同场景。

weixin_29174141的博客 391

IDEA远程运行,配置runTarget(解决windows系统rsync路径错误)

目前这个问题还是很蛋疼的,各种bug,并且每次代码同步比本地要慢不少,我这里还经常出现服务关不上的情况,去要我去服务器自己把进程杀掉,所以说这个自己玩玩就行了,折腾出来瘾就过了,拿来用还是不现实。

梧桐树的博客 1549

DESeq2差异分析结果不会看?用这个R脚本5分钟生成发表级火山图和热图

本文详细介绍了如何使用R语言快速可视化DESeq2差异分析结果,5分钟内生成可直接用于论文发表的火山图和热图。通过解析DESeq2数据结构、展示ggplot2和EnhancedVolcano包的绘图技巧,以及pheatmap包的热图定制方法,帮助研究者高效呈现差异表达基因分析结果。

weixin_30326515的博客 340

idea run target ssh+win10+ubuntu20

准备 一台ubuntu20服务器 服务器上开启ssh 服务器上配置rsync服务端 服务器上配置项目运行所需的所有环境(java,mysql,redis,…) 一台windows电脑 电脑上配置rsync客户端 电脑上配置idea的run target ssh方式 服务器ssh # 安装ssh客户端 sudo apt-get install openssh-client # 安装ssh服务端 sudo apt-get install openssh-server # 查看是否在运行 ps -e |gre

求道问术 1169

【python快速编程入门(第二版)黑马程序员课后编程题】

python快速编程入门(第二版)黑马程序员课后编程题

weixin_46167259的博客 1万+

飞腾X100芯片GPU状态查询

本文档对在linux系统下查看X100芯片GPU状态信息进行说明,可以帮助大家了解芯片的实时工作状态。

乌拉大喵喵 2814

IDEA Run Target远程执行Java & Debug

准备 整体为Windows下使用IDEA编写Java程序,而包需要上传到Linux服务器运行,本机没有完整运行环境(同理可用于Mac,Mac配置rsync更简单,实际上我免密都没有做就配置成功,且不知道为什么,Mac使用起来rsync的效率比Windows高非常多)。 ​ WIN10:其它windows版本可能需要安装openssh; Linux服务器:完整环境所在,用于调试Java程序; IDEA新版(当前使用2021.2):支持run target功能,见下图。 ![image.png](https

CodeZenPlayground 2287

MIUI升级后录音神秘消失?别慌!手把手教你从Android/data目录找回宝贵录音文件

本文详细解析了MIUI升级后录音文件消失的原因,并提供了从Android/data目录找回录音文件的实用指南。通过技术分析和步骤演示,帮助小米手机用户解决录音文件丢失问题,同时分享预防措施和高级恢复方案,确保重要录音数据安全。

weixin_30696427的博客 281

idea使用rsync快速部署ssh

windows同步的文件目录分隔符与linux不一致 \ 和 / 区别,导致同步过去的文件都被''单引号包裹。idea版本不一样,对应的fileList可能也不一样,工作目录也不一样,具体观察日志。rsync路径 C:\cygwin64\bin\rsync_idea.bat。安装下载cygwin,同时cygwin中下载rsync,openssh。注意: idea版本不同可能只支持 publickey,密码方式会报错。ssh路径 C:\cygwin64\bin\ssh.exe。选择use rysnc。

u012743809的博客 1068

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 307

【小白深度教程 1.3】使用 BP-Net 深度补全网络,进行 KITTI 稠密点云和图像融合(Depth Completion 实战)

在上一节中,我们展示了如何将从激光雷达获取的稀疏点云(深度)映射到图像。因此这篇论文我们尝试使用 Depth Completion(深度补全)技术,来将稀释的点云深度,补全为稠密深度。

2401_87064292的博客 1199

原来是这样!——rsync下行同步和inotify实时同步部署

master slave rsync+inotify同步 master slave 上图会出现报错的原因是,之前都是以nobody匿名用户登陆的,只需要在master上将nobody改为root即可 master验证

ItookapillinNJ的博客 403

54、生物神经网络建模全解析

本文系统解析了生物神经网络的建模方法,涵盖从单个神经元到神经网络的多个时空尺度。首先介绍神经元层面的生物物理模型(如霍奇金-赫胥黎模型和多隔室模型)与多种简化模型(如菲茨休-纳古莫、莫里斯-勒卡尔、积分发放模型等),并分析其适用场景。随后探讨突触层面的信号传递机制,对比电突触与化学突触在结构、传输速度和方向上的差异,阐述其在神经网络建模中的理论意义。文章旨在为理解神经系统的信息处理机制、构建受生物启发的人工智能模型提供理论基础。

app77的博客 76

二十九、rsync+inotity实时监控同步工具

一、场景应用: 客户通过url访问资源(查询,下载等),并发量是非常高的,所以运用负载均衡分担web服务器的压力,在后端连接不同的NFS备份服务器,同样也是分担压力;那么在同步nfs服务器上的资源的时候,我们需要实时的同步到备份服务器上,这样用户才能使用这些资源,传统的定时任务,我们知道最快1分钟,同步一次,这是无法忍受的,所...

weixin_30300225的博客 280

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

远程文件同步:rsync增量备份Miniconda项目

通过Miniconda导出可复现的环境配置,结合rsync增量同步代码与模型文件,实现本地开发与远程训练环境的一致性。利用滑动指纹算法仅传输变更部分,大幅提升大文件同步效率,适合无容器环境下的AI研发工作流。

weixin_31688273的博客 759

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【keepalived + rsync +inotify 】实现真正的高效数据实时同步

实验背景 A文件服务器的/opt/dataA 和 B文件服务器的/opt/dataB目录实时同步 A正常时,A为主,B为备,B去实时同步A A挂了时,B为主,待A起来后,A为备,去实时同步B,并且能补上挂掉期间B增加的数据,反之亦然 keepalived + rsync +inotify 实现真正的高效数据实时同步 https://fandenggui.com/post/keepaliv...

michaelwoshi的博客 1819

三十、sersync高级同步工具实时数据同步架构

一、项目介绍 Sersync项目利用inotity与rsync技术实现对服务器数据实时同步的解决方案,其中inotity用于监控sersync所在服务器上的文件变化。 Sersync项目的优点: 1. 相比较单纯的inotity工具,sersync是使用C++编写的,对linux系统文件产生的临时文件和重复的文件操作有过滤功能,在结合rsync的时候,会减少运行时...

weixin_30815427的博客 269

实时备份同步方案

实时备份 inotify结合rsync实时同步 适用数据量小场景(几十 GB 到几百 GB)。高并发容易无法抓取目录变更造成数据丢失。

weixin_47242801的博客 1341

inotity实现Linux文件实时同步

应用环境: 可以应在服务器实时同步 反网页传该 ------------------- rsync 介绍 make make install =================== rcync 同步使用方法 1.本机文件同步 2,异地文件同步 ...

weixin_33989058的博客 152

5分钟搭建文件同步利器:Rsync增量备份系统彻底解决数据同步烦恼

你是否还在为多设备文件同步而烦恼?手动复制粘贴担心遗漏,云盘同步又受限于网络速度和存储空间,重要工作文档在台式机、笔记本、移动硬盘间无法实时保持一致?本文将带你用Rsync打造高效可靠的增量备份方案,彻底解决文件同步和数据备份的痛点。 读完本文你将掌握:快速部署Rsync同步系统、配置自动增量备份策略、解决跨平台同步难题、搭建个人私有云存储方案。通过简单的命令行工具实现企业级数据同步功能,让文件

gitblog_01182的博客 425

rsync+inotity

rsync默认端口:873xinetd默认服务inotify参数详解inotifywait-r:递归-q:只打印事件-m:始终监听事件--excludei:排除--timefmt:时间格式--format:输出的格式-e:监控的事件:access:文件或目录被读modify:文件或目录被修改attrib:文件或目录属性被改变close:文件或目录被关闭open:文件或目录被打开moved_to:文...

weixin_33709609的博客 197

rsync + lnotify 实现数据的实时同步更新

1.检查rsync是否安装 rpm -q rsync 2.定义配置文件/etc/rsyncd.conf uid=sunliyangid=sunliyanuserchroot=nomaxconnections=200timeout=600pidfile=/var/run/rsyncd.pidlockfile=/var/run/rsyncd.loc...

weixin_34249678的博客 230

CentOS6.9 使用inotity+rsync做文件同步

参考:http://www.cnblogs.com/f-ck-need-u/p/7220009.html            https://www.cnblogs.com/f-ck-need-u/p/7220193.html            https://www.cnblogs.com/fasthorse/p/5431131.html首先两边都要安装rsyncsudo yum -y i...

幽灵 逐梦--专栏 710

Rsync增量同步工具:高效备份模型检查点文件

在大模型训练中,利用Rsync的增量同步特性可高效备份检查点文件,避免全量传输带来的带宽浪费与时间损耗。结合ms-swift框架的回调机制,能实现训练、保存、同步自动化,提升数据安全性与工程稳定性,构建可靠的模型资产管理体系。

weixin_42452483的博客 905

Inotify-tools-3.14.tar.gz资源介绍:实现Linux文件实时同步功能

Inotify-tools-3.14.tar.gz资源介绍:实现Linux文件实时同步功能 【下载地址】Inotify-tools-3.14.tar.gz资源介绍 该项目提供了一个名为 `inotify-tools-3.14.tar.gz` 的资源文件,专为Linux文件实时同步而设计。基于Inotify与Rsync技术...

gitblog_06763的博客 1070

实时同步服务--inotify+sersync

实时同步服务部署实时同步服务原理/概念实时同步服务部署 实时同步服务原理/概念 1、需要部署好rsync守护进程实现数据传输。 2、需要部署好inotify服务,实现目录中数据变化监控。 3、将rsync服务和inotify服务建立联系,将变换的数据进行实时备份传输。 实时同步服务部署 1、部署rsync守护进程: 链接:rsync守护进程部署方法 2、部署inotify监控服务 (1)、安装软件: yum install -y inotify-tools (2)、命令: /usr/bin/inotify

weixin_46121991的博客 372
上一篇: 如何解决Redis单点故障——Redis主从架构和哨兵模式
下一篇: GFS分布式文件系统简介及部署——让存储变得更高级
糖果剑客
博客等级 码龄6年 97粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值