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.pswp.cn/bicheng/77706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77706.shtml
英文地址,請注明出處:http://en.pswp.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; 約定…