当前位置: 首页 > news >正文

rsync+nfs+lrsync服务部署流程

rsync+nfs+lrsync服务

在这里插入图片描述

主机信息

主机角色外网IP内网IP主机名
nfs、lsync10.0.0.31176.16.1.31nfs
客户端10.0.0.7176.16.1.7web01
rsync、nfs10.0.0.41172.16.1.41backup

部署流程

1.backup服务器部署rsync

--下载rsync服务
[root@backup ~]# yum install -y rsync
--配置rsync服务
[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log[backup]
path = /backup		#存放系统重要文件
[nfs]
path = /nfs			#存放用户数据文件--创建必要文件(组、用户、匿名用户密码文件、模块目录、对应权限)
[root@backup ~]# groupadd -g 666 rsync
[root@backup ~]# useradd -g 666 -u 666  -M -s /sbin/nologin rsync
[root@backup ~]# id rsync
uid=666(rsync) gid=666(rsync) groups=666(rsync)[root@backup ~]# echo rsync_backup:123 > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd 
[root@backup ~]# mkdir /backup /nfs
[root@backup ~]# chown rsync.rsync /backup /nfs
[root@backup ~]# ll -d /backup /nfs /etc/rsync.passwd 
drwxr-xr-x 2 rsync rsync  6 Dec  2 16:29 /backup
-rw------- 1 root  root  17 Dec  2 16:29 /etc/rsync.passwd
drwxr-xr-x 2 rsync rsync  6 Dec  2 16:29 /nfs--启动服务
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable  rsyncd

2.web01测试rsync服务

--向两个模块推送内容测试是否成功
[root@web01 ~]# rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup
[root@web01 ~]# rsync -avz /etc/hosts  rsync_backup@172.16.1.41::nfs

3.nfs服务器部署nfs服务

--下载nfs服务
[root@nfs ~]# yum install -y nfs-utils--配置nfs服务(指定运行服务的用户uid、gid)
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)--创建必要信息(与backup统一用户信息,都使用rsync用户)
[root@nfs ~]# groupadd -g 666 rsync
[root@nfs ~]# useradd -g 666 -u 666  -M -s /sbin/nologin rsync
[root@nfs ~]# id rsync
uid=666(rsync) gid=666(rsync) groups=666(rsync)
[root@nfs ~]# mkdir /data
[root@nfs ~]# chown rsync.rsync /data/--启动服务
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs

4.web01挂载nfs:/data

--查看nfs共享的目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24--挂载共享目录
[root@web01 ~]# mkdir /imag
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /imag

5.nfs部署lsync服务监控/data目录变化

--安装lsync服务
[root@nfs ~]# yum install -y lsyncd--配置lsync服务(注意监控目录、推送模块名、同步时间)
[root@nfs ~]# vim /etc/lsyncd.confsettings {logfile = "/var/log/lsyncd/lsyncd.log",statusFile = "/var/log/lsyncd/lsyncd.status",maxProcesses = 2,nodaemon = false,
}
sync {default.rsync,source = "/data",target = "rsync_backup@172.16.1.41::nfs",delete = true,delay = 1,rsync = {binary = "/usr/bin/rsync",password_file = "/etc/rsyncd.pwd",archive = true,compress = true,}
}--创建必要数据文件(密码文件名与lsync配置文件中的一致,其内容为rsync服务匿名用户的密码)
[root@nfs ~]# echo 123 > /etc/rsyncd.pwd
[root@nfs ~]# chmod 600 /etc/rsyncd.pwd
[root@nfs ~]# ll /etc/rsyncd.pwd 
-rw------- 1 root root 4 Dec  4 16:54 /etc/rsyncd.pwd--启动服务
[root@nfs ~]# systemctl start lsyncd
[root@nfs ~]# systemctl enable lsyncd

6.测试服务

--在web:/imag写入内容测试
[root@web01 ~]# cd /imag/
[root@web01 imag]# touch test{1..5}.txt--查看nfs:/data目录是否有web创建的文件
[root@nfs ~]# cd /data
[root@nfs data]# ls
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt--查看backup:/nfs目录是否同步了nfs:/data中的内容
[root@backup ~]# cd /nfs
[root@backup nfs]# ls
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt--------------------至此服务部署成功----------------------

解决单点故障的问题

手动部署

  • 假设nfs服务器突然宕机无法恢复
[root@nfs data]# ifdown ens36
  • 需在backup服务器上部署nfs服务共享/nfs目录
[root@backup ~]# yum install -y nfs-utils
[root@backup ~]# vim /etc/exports
/nfs 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)[root@backup ~]# id rsync
uid=666(rsync) gid=666(rsync) groups=666(rsync)
[root@backup ~]# ll -d /nfs/
drwxr-xr-x 2 rsync rsync 91 Dec  4 16:56 /nfs/[root@backup ~]# systemctl start nfs
[root@backup ~]# systemctl enable  nfs
  • web端切换挂载共享存储
--查询共享存储挂载的目录(使用df -h 会夯住,没法看)
[root@web01 ~]# tail -5  /proc/mounts
tmpfs /tmp tmpfs rw,nosuid,nodev 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=97088k,mode=700 0 0
172.16.1.31:/data /imag nfs4 rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0--先取消挂载
[root@web01 ~]# umount -f /imag 
[root@web01 ~]# df -h--查看backup共享的目录
[root@web01 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/nfs 172.16.1.0/24--挂载并查看内容
[root@web01 ~]# mount -t nfs 172.16.1.41:/nfs /imag
[root@web01 ~]# cd /imag/
[root@web01 imag]# ls
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt

使用脚本定时任务自动执行

  • 在web01端写入脚本
[root@web01 ~]# vim  /neterror.sh
#!/bin/bash
ping -c1 -W1 172.16.1.31 &>/dev/null #或者使用
#showmount -e 172.16.1.31 &>/dev/null
if [ $? -ne 0 ];then
umount -lf /img &>/dev/null &
sleep 2
umount -lf /img &>/dev/null
mount -t nfs 172.16.1.41:/nfs /img
fi
  • 设置定时任务
[root@web01 ~]# vim /etc/crontab 
01 * * * * root /neterror.sh

lsync配置文件详解

settings {
logfile = "/var/log/lsyncd/lsyncd.log",		--日志文件所在的位置
statusFile =
"/var/log/lsyncd/lsyncd.status", 			--状态文件日志所在的位置
maxProcesses = 2, 							--最大的进程数量,内核的数量保持一致
nodaemon = false, 							--以守护进程方式来运行
}sync {
default.rsync, 								--默认用rsync命令
source = "/data/", 							--实时监控/data目录 只要发生变化立刻推送到backup
target = "rsync_backup@10.0.0.41::nfs", 	--通过rsync守护进程命令来推送数据
delete = true, 								--使用--delete参数来实时同步
delay = 1, 									--1秒钟同步
rsync = {
binary = "/usr/bin/rsync", 					--命令所在的位置
password_file = "/etc/rsyncd.pwd", 			--密码的配置文件
archive = true, 							-- -a参数
compress = true, 							-- -z参数
}
}

相关文章:

rsync+nfs+lrsync服务部署流程

rsyncnfslrsync服务 主机信息 主机角色外网IP内网IP主机名nfs、lsync10.0.0.31176.16.1.31nfs客户端10.0.0.7176.16.1.7web01rsync、nfs10.0.0.41172.16.1.41backup 部署流程 1.backup服务器部署rsync --下载rsync服务 [rootbackup ~]# yum install -y rsync --配置rsync服…...

基于SpringBoot+Vue的宠物咖啡馆系统-无偿分享 (附源码+LW+调试)

目录 1. 项目技术 2. 功能菜单 3. 部分功能截图 4. 研究背景 5. 研究目的 6. 可行性分析 6.1 技术可行性 6.2 经济可行性 6.3 操作可行性 7. 系统设计 7.1 概述 7.2 系统流程和逻辑 7.3 系统结构 8. 数据库设计 8.1 数据库ER图 (1)宠物订…...

SQLServer 服务器只接受 TLS1.0,但是客户端给的是 TLS1.2

Caused by: javax.net.ssl.SSLHandshakeException: the server selected protocol version TLS10 is not accepted by client preferences [TLS12] 原因描述:SQLServer 服务器只接受 TLS1.0,但是客户端给的是 TLS1.2 解决方法如下: 打开文件…...

Golang内存模型总结1(mspan、mcache、mcentral、mheap)

1.内存模型 1.1 操作系统存储模型 从上到下分别是寄存器、高速缓存、内存、磁盘,其中越往上速度越快,空间越小,价格越高。 关键词是多级模型和动态切换 1.2 虚拟内存与物理内存 虚拟内存是一种内存管理技术,允许计算机使用比…...

lobeChat安装

一、安装Node.js version > v18.17.0 二、下载 cd F:\AITOOLS\LobeChat git clone https://github.com/lobehub/lobe-chat.git (下载要是失败就手动下:https://codeload.github.com/lobehub/lobe-chat/zip/refs/heads/main) npm install …...

Android学习8 -- NDK2--练习2(Opencv)

以下是一个简单的安卓项目示例,通过NDK调用OpenCV来处理图像(例如,将彩色图像转换为灰度图像)。 开发环境 安装 Android Studio(支持NDK开发)。配置NDK和CMake(通过Android Studio的SDK Manage…...

nodejs循环导出多个word表格文档

文章目录 nodejs循环导出多个word表格文档一、文档模板编辑二、安装依赖三、创建导出工具类exportWord.js四、调用五、效果图nodejs循环导出多个word表格文档 结果案例: 一、文档模板编辑 二、安装依赖 // 实现word下载的主要依赖 npm install docxtemplater pizzip --save/…...

elasticsearch-如何给文档新增/更新的字段

文章目录 前言elasticsearch-如何给文档新增/更新的字段1. 如何给某些文档新增/更新的字段2. 给所有文档添加/更新一个新的字段3. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且…...

https/http访问接口工具类,附带ssl忽略证书验证,以及head头部的添加-java版

复制即用 package utils;import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import javax.net.ssl.*; import java.io.BufferedReader; import java.io.IOException; impo…...

node.js基础学习-express框架-静态资源中间件express.static(十一)

前言 在 Node.js 应用中,静态资源是指那些不需要服务器动态处理,直接发送给客户端的文件。常见的静态资源包括 HTML 文件、CSS 样式表、JavaScript 脚本、图片(如 JPEG、PNG 等)、字体文件和音频、视频文件等。这些文件在服务器端…...

Python语法基础---正则表达式

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 我们这个文章所讲述的,也是数据分析的基础文章,正则表达式 首先,我们在开始之前,引出一个问题。也是我们接下来想要解决的问题。…...

Uniapp 微信小程序分享 - 自定义绘制分享图片

技术栈: Uniapp Vue3 简介 因实际业务需求,需要实现微信小程序自定义分享,根据当前数据动态生成(绘制)分享卡片的图片。 基础分享使用 配置此处不在赘述,可查看上篇博客:Uniapp 微信小程序分…...

鸿蒙技术分享:Navigation页面容器封装-鸿蒙@fw/router框架源码解析(三)

本文是系列文章,其他文章见:鸿蒙fw/router框架源码解析(一)-router页面管理鸿蒙fw/router框架源码解析(二)-Navigation页面管理鸿蒙fw/router框架源码解析(四)-路由Hvigor插件实现原…...

三步入门Log4J 的使用

本篇基于Maven 的Project项目&#xff0c; 快速演示Log4j 的导入和演示。 第一步&#xff1a; 导入Log4j依赖 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.24.2</version&…...

VBA中类的解读及应用第十八讲:利用类方法,判断任意单元格类型

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…...

查询品牌涉及两张表(brand、brand_admin_mapping)

文章目录 1、BrandController2、AdminCommonService3、BrandApiService3、BrandCommonService4、BrandSqlService涉及的表SQL 查询逻辑参数处理执行查询完整 SQL 逻辑参数映射总结 查询指定管理员下的品牌所涉及的表有哪些&#xff1f; http://127.0.0.1:8087/brand/admin/list…...

Eureka和Zookeeper、Nacos的区别

目录 一、Eureka与Zookeeper的区别 适用场景&#xff1a; 架构设计&#xff1a; 功能特性&#xff1a; 社区生态&#xff1a; 二、Eureka与Nacos的区别 接口方式&#xff1a; 实例类型&#xff1a; 健康检测&#xff1a; 服务发现&#xff1a; 一致性与可用性&#…...

微信小程序怎么实现非tabbar页面显示tabbar,自定义组件实现

微信小程序没有发现可以实现非tabbar页面显示tabbar的方法&#xff0c;但是可以在tabbar页面当中隐藏tabbar&#xff0c;使用wx.hideTabBar()方法就可以实现&#xff0c;在非tabbar页面调用wx.showTabBar()方法却会显示失败&#xff0c;不能显示tabbar onLoad() {wx.showTabBar…...

SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)

前言 前面给大家介绍了动态表头的导入&#xff0c;这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入&#xff0c;我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次&#xff0c;我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...

多种平台上安装部署调试Open5GS(四)

OpenWRT 源码安装 UERANSIM 安装依赖openwrt源码安装cmake其他依赖准备UERANSIM安装测试验证Open5GS 是一个功能完善的开源5G项目,具备5G、4G核心网功能,最新代码支持R17标准, 本系列文章介绍Open5GS在x86、ARM平台上的安装部署方法,并通过搭建UERANSIN、商用5G基站和终端两…...

单片机的基本构成与工作原理

单片机&#xff0c;即微控制器&#xff08;Microcontroller Unit&#xff0c;MCU&#xff09;&#xff0c;是一种将中央处理器(CPU)、存储器(ROM/RAM)、定时/计数器(Timer/Counter)、中断系统、输入输出(I/O)接口等集成在一块芯片上的微型计算机。它具有体积小、功耗低、成本低…...

opencv常用图像处理操作

OpenCV 处理图像的通用流程通常包括以下几个步骤&#xff0c;根据具体需求可以调整或跳过某些步骤。以下是一个通用的框架&#xff1a; 读取图像 加载图像文件到内存中以进行后续处理。 import cv2 读取图像 image cv2.imread(‘image.jpg’) # 彩色图像 gray_image cv2…...

Svn如何切换删除账号

记录Svn清除切换账号 1.首先打开小乌龟的设置如下图 打开设置后单击已保存数据&#xff0c;然后选择清除 接上图选择清除后&#xff0c;就可以打勾选择清除已保存的账号&#xff0c;我们再次检出的就可以切换账号了 &#x1f449;总结 本次记录Svn清除切换账号 如能帮助到你…...

使用PaddleOCR遇到的问题Bug

Q1: 训练模型的预测效果比inference模型的预测效果差距很大,怎么办?原因是什么? A1: 训练模型:使用训练数据集进行训练后的模型。 inference模型:把模型结构和模型参数保存在文件中的固化模型,多用于预测部署场景。训练过程中保存的模型是checkpoints模型,保存的只有模…...

了解Xcode在iOS开发中的作用和功能有哪些

Xcode是什么&#xff1f;它在iOS开发中的作用和功能有哪些&#xff1f; 一、Xcode是什么&#xff1f; Xcode是苹果公司针对macOS平台开发的一款集成开发环境&#xff08;Integrated Development Environment&#xff0c;简称IDE&#xff09;。它主要用于开发iOS、iPadOS、mac…...

《船舶物资与市场》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问&#xff1a;《船舶物资与市场》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《船舶物资与市场》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国船舶集团有限公司 主办单…...

商汤完成组织架构调整,改革完成的商汤未来何在?

首先&#xff0c;从核心业务的角度来看&#xff0c;商汤科技通过新架构明确了以AI云、通用视觉模型等为核心业务的战略方向。这一举措有助于商汤科技集中资源&#xff0c;加强在核心业务领域的研发和市场拓展&#xff0c;提高市场竞争力。同时&#xff0c;坚定生成式AI为代表的…...

MyBatis异常体系中ErrorContext和ExceptionFactory原理分析

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 exceptions包分包设计ExceptionFactory类介绍为什么使用工厂不是直接new呢&#xff1f;【统一的异常处理机制】【异常的封装与转化】【…...

WHLUG丨deepin、华中科技大学开放原子开源俱乐部、 RustSBI 和清华大学开源操作系统训练营共话开源新生代成长之路

2024年11月30日下午&#xff0c;由 deepin&#xff08;深度&#xff09;社区联合华中科技大学开放原子开源俱乐部、 RustSBI 开源社区和清华大学开源操作系统训练营共同举办的WHLUG&#xff08;武汉Linux用户组&#xff09;线下沙龙在华中科技大学成功举办。 本次活动聚集了50余…...

通过HTML Canvas 在图片上绘制文字

目录 前言 一、HTML Canvas 简介 二、准备工作 三、绘制图片 四、绘制文字 五、完整代码 效果演示&#xff1a; 前言 HTML canvas 为我们提供了无限的创意可能性。今天&#xff0c;我们就来探索一下如何通过 HTML canvas 将图片和文字绘制到图片上&#xff0c;创造出独特…...