Rsync+sersync2实现目录实时同步

Sersync + rsync 实现实时同步服务

sersync2二进制包目录规划

/app/tools/sersync/
/app/tools/sersync/bin
/app/tools/sersync/conf

项目架构是这样的:

+-------------------+        +-------------------+        +-------------------+
|                   |        |                   |        |                   |
|    Web Server     | -----> |    NFS Server     | -----> | Backup Server     |
|                   |        |                   |        |                   |
+-------------------+        +-------------------+        +-------------------+^                               ^                           ^|                               |                           ||                               |                           |(通过NFS挂载)                 (提供共享目录)             (实时同步数据)

首先需要在rsync服务端更改一下配置文件,增加nfsbackup模块,

[nfsbackup]
path = /nfsbackup
comment = nfsbackup Directory
read only = no
list = no                   # 禁止列出模块(安全建议)

再创建nfsbackup文件夹

mkdir /nfsbackup/ -p

最后重启rsyncd服务

systemctl restart rsyncd 

NFS服务器的相关配置

先决条件:创建data目录,挂载本地目录

mkdir /data/ -p
mount -t nfs /data/ /mnt

接下来需要更改NFS的配置文件,它是/etc/exports

vim /etc/exports

增加一行

/nfsdata 192.168.179.0/24(rw,sync,all_squash,anonuid=1999,anongid=1999,no_subtree_check)

然后重新加载一下nfs 服务

systemctl reload nfs 
  • 配置sersync2,先创建目录
mkdir /app/tools/sersync/ -p
mkdir /app/tools/sersync/bin -p
mkdir /app/tools/sersync/conf -p

下载sersync的二进制包到本地

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

解压压缩包,然后进入目录,里面有两个文件,sersync2是二进制包,可以直接运行。confxml.xml是sersync的配置文件

tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
cd GNU-Linux-x86
[root@nfs-01 GNU-Linux-x86]# ll
total 1772
-rwxr-xr-x 1 root root    2214 Oct 26  2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 Oct 26  2011 sersync2

对于sersync2,可以使用软链接的方式放到/bin目录下,不需要移动文件

ln -s /app/tools/sersync/bin/sersync2 /bin

然后进入/app/tools/sersync/conf目录下,修改confxml.xml这个配置文件

cd /app/tools/sersync/conf
vim confxml.xml
    <localpath watch="/data"><remote ip="192.168.179.152" name="nfsbackup"/><!--<remote ip="192.168.8.39" name="tongbu"/>--><!--<remote ip="192.168.8.40" name="tongbu"/>--></localpath><rsync><commonParams params="-artuz"/><auth start="true" users="root" passwordfile="/etc/rsync-client.pass"/><userDefinedPort start="false" port="874"/><!-- port=874 --><timeout start="false" time="100"/><!-- timeout=100 --><ssh start="false"/></rsync>
2.1 本地路径与监控配置 (<localpath>)
xml复制代码<localpath watch="/监控的目录路径">  <!-- 示例:/data/www --><remote ip="远程IP1" name="rsync模块名"/>  <remote ip="远程IP2" name="rsync模块名"/>  
</localpath>
  • 关键参数 :
    • watch:需监控的本地目录(如 /data/www),目录需存在且有读权限。
    • <remote>:可配置多个远程服务器,ip 为远程服务器 IP,name 对应服务端 rsyncd.conf 中定义的模块名。
2.2 rsync 参数配置 (<rsync>)
xml复制代码<rsync><commonParams params="-artuz --delete"/>  <!-- rsync 命令参数 --><auth start="true" users="rsync用户名" passwordfile="/密码文件路径"/>  <!-- 认证配置 --><userDefinedPort start="false" port="874"/>  <!-- 默认端口873 --><timeout start="false" time="100"/>  <!-- 超时设置 --><ssh start="false"/>  <!-- 是否使用SSH -->
</rsync>
  • 关键参数:

    • commonParams
      

      • -artuz:归档模式、递归、保留时间、增量同步、压缩传输。
      • --delete建议添加,删除目标端多余文件(保持严格一致时使用)。
    • auth
      

      • users:远程 rsyncd.conf 中配置的认证用户名(如 rsync_user)。
      • passwordfile:本地存储密码的文件路径(如 /etc/rsync.pass),文件内容仅为密码,权限需 600
    • userDefinedPort:若修改了 rsync 默认端口(默认 873),需在此处启用并指定端口。

    • sshstart="false" 表示使用 rsync 协议,若为 true 则需配置 SSH 密钥认证。

修改完之后查看区别

vimdiff /GNU-Linux-x86/confxml.xml

在这里插入图片描述

web服务器挂载NFS共享目录

现在还需要挂载NFS的目录:

先创建一个目录,就叫做upload吧

mkdir /upload -p

然后再进行挂载:

mount -t nfs 192.168.179.151:/data

查看目录挂载情况

df -h /upload/

在这里插入图片描述

软链接到bin目录

ln -s /app/tools/sersync/bin/sersync2 /bin/

使用sersync2的help命令

sersync2 -h

在这里插入图片描述

启动服务

sersync2 -rdo /app/tools/bin/confxml.xml 

查看状态是否正常

ps -ef | grep sersync2

在这里插入图片描述

测试,在web服务器上创建十个文件

在这里插入图片描述

在备份服务器上查看,可以看到数据完全被同步过来了。

在这里插入图片描述

到此,测试通过。通过rsync+sersync2的方式完成了一个实时同步的小项目,还是非常有实战价值的

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

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

相关文章

MySQL视图高级应用与最佳实践

1. 视图与索引的协同优化​​ ​​物化视图&#xff08;模拟实现&#xff09;​​ MySQL原生不支持物化视图&#xff0c;但可通过“定时刷新”的物理表模拟&#xff1a; -- 1. 创建存储结果的物理表 CREATE TABLE cached_monthly_sales (product_id INT,total_sales DECIMAL(10…

string的模拟实现 (6)

目录 1.string.h 2.string.cpp 3.test.cpp 4.一些注意点 本篇博客就学习下如何模拟实现简易版的string类&#xff0c;学好string类后面学习其他容器也会更轻松些。 代码实现如下&#xff1a; 1.string.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include <…

Unity:像素(Pixels) 和 单位(Units)

目录 从第一性原理出发&#xff1a;什么是像素和 Unit&#xff1f; &#x1f9f1; 1. 像素&#xff08;Pixel&#xff09;&#xff1a;图像的最小单位 &#x1f4d0; 2. Unity Unit&#xff08;单位&#xff09;&#xff1a;游戏世界中的度量单位 核心换算公式&#xff1a;…

【失败总结】Win10系统安装docker

1.启用或关闭windows功能中&#xff0c;将Hyper-V功能勾选全部启用&#xff0c;容器勾选。设置好后要重启电脑。 2.管网下载下载安装Docker  Docker官网&#xff1a;https://www.docker.com/ 3.可以自定义Docker安装路径 新建安装目录&#xff1a;d:\MySoftware\Docker并将D…

《Adaptive Layer-skipping in Pre-trained LLMs》- 论文笔记

作者&#xff1a;Xuan Luo, Weizhi Wang, Xifeng Yan Department of Computer Science, UC Santa Barbara xuan_luoucsb.edu, weizhiwangucsb.edu, xyancs.ucsb.edu 1. 引言与动机 1.1 背景 LLM 的成功与挑战: 大型语言模型 (LLMs) 在翻译、代码生成、推理等任务上取得巨大成…

DQN在Gym的MountainCar环境的实现

DQN on MountainCar 引言 在本次实验里&#xff0c;我构建了DQN和Dueling DQN&#xff0c;并在Gymnasium库的MountainCar环境中对它们展开测试。我通过调整训练任务的超参数&#xff0c;同时设计不同的奖励函数及其对应参数&#xff0c;致力于获取更优的训练效果。最后&#…

计算机网络综合实验指南

计算机网络综合实验指南 本实验将结合《计算机网络自顶向下》前三章的核心概念&#xff0c;通过实际操作加深对应用层、运输层和网络层的理解。实验涵盖 HTTP/TCP抓包分析、DNS解析观察、网页性能评估及简单Socket编程&#xff0c;帮助你将理论转化为实践。 实验准备 工具&…

【AI部署】腾讯云GPU-RUN—SadTalker的AI数字人视频—未来之窗超算中心

磁盘空间 创建未来之窗 查看磁盘命令 df -h 指定路径创建环境 conda create --prefix sadtalker python3.10 指令路径运行环境 conda activate ./sadtalker 安装环境 pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://…

爬虫利器SpiderTools谷歌插件教程v1.0.0!!!web端JavaScript环境检测!!!

SpiderTools谷歌插件教程v1.0.0 一、SpiderTools简介二、下载通道三、插件介绍四、插件使用五、工具函数使用 补环境工具推荐&#xff1a;爬虫补环境利器webEnv 一、SpiderTools简介 SpiderTools主要用于检测和监控网页的JavaScript运行环境。该插件可以帮助开发者更好地查看…

Android开发协调布局滑动悬停

Android开发协调布局滑动悬停 直接给个xml,防止下次忘了怎么写。 <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"x…

Linux学习——TCP

一.TCP编程API 1.socket函数 1.socket函数 include include int socket(int domain,int type,int protocol); 参数 domain AF_INET AF_INET6 AF_UNIX,AF_LOCAL AF_NETLINK AF_PACKET type SOCK_STREAM: 流式…

Linux驱动开发--异步通知与异步I/O

3、异步通知与异步I/O 3.1 Linux信号 阻塞与非阻塞访问、poll()函数提供了较好的解决设备访问的机制&#xff0c;但是如果有了异步通知&#xff0c;整套机制则更加完整了。 异步通知的意思是&#xff1a;一旦设备就绪&#xff0c;则主动通知应用程序&#xff0c;这样应用程序…

大语言模型推理能力的强化学习现状理解GRPO与近期推理模型研究的新见解

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【Linux系统】Linux基础指令(详解Linux命令行常用指令,每一个指令都有示例演示)

文章目录 一、与文件路径相关的指令0.补充知识&#xff1a;路径的认识1.pwd 指令2.cd 指令&#xff08;含家目录的介绍&#xff09; 二、创建和删除文件的指令0.补充知识&#xff1a;普通文件和目录文件1.touch 指令&#xff08;可以修改文件的时间戳&#xff09;2.mkdir 指令3…

LangChain 单智能体模式示例【纯代码】

# LangChain 单智能体模式示例import os from typing import Anyfrom langchain.agents import AgentType, initialize_agent, Tool from langchain_openai import ChatOpenAI from langchain.tools import BaseTool from langchain_experimental.tools.python.tool import Pyt…

解决:VSCode C++ conan 安装第三方库后 头文件报错

文章目录 1 头文件include路径查找报错参考 1 头文件include路径查找报错 找到conan_toolchain.cmake中 INCLUDE_PATH list(PREPEND CMAKE_INCLUDE_PATH "/Users/hanliqiang/.conan2/p/b/fmte8c4f7a755477/p/include")生成C编译配置 CtrlShiftP 中选择C Edit Confi…

松灵Cobot Magic双臂具身遥操机器人(基于ROS的定位建图与协同导航技术)

摘要 本文以CobotMagic可移动协作机器人为研究对象&#xff0c;从硬件架构设计、软件系统架构、多传感器融合定位建图系统、智能导航系统协同机制四个维度&#xff0c;深入解析机器人系统工作原理。重点研究多传感器融合定位建图系统实现原理&#xff0c;结合实测数据验证系统…

回归,git 分支开发操作命令

核心分支说明 主分支&#xff08;master/production&#xff09;存放随时可部署到生产环境的稳定代码&#xff0c;仅接受通过测试的合并请求。 开发分支&#xff08;develop&#xff09;集成所有功能开发的稳定版本&#xff0c;日常开发的基础分支&#xff0c;从该分支创建特性…

ASP.NET Core 最小 API:极简开发,高效构建(下)

在上篇文章 ASP.NET Core 最小 API&#xff1a;极简开发&#xff0c;高效构建&#xff08;上&#xff09; 中我们添加了 API 代码并且测试&#xff0c;本篇继续补充相关内容。 一、使用 MapGroup API 示例应用代码每次设置终结点时都会重复 todoitems URL 前缀。 API 通常具有…

Spring之我见 - Spring Boot Starter 自动装配原理

欢迎光临小站&#xff1a;致橡树 Spring Boot Starter 的核心设计理念是 约定优于配置&#xff0c;其核心实现基于 自动配置&#xff08;Auto-Configuration&#xff09; 和 条件化注册&#xff08;Conditional Registration&#xff09;。以下是其生效原理&#xff1a; 约定…