rsync+nfs+lrsync服务部署流程
rsync+nfs+lrsync服务

主机信息
| 主机角色 | 外网IP | 内网IP | 主机名 |
|---|---|---|---|
| nfs、lsync | 10.0.0.31 | 176.16.1.31 | nfs |
| 客户端 | 10.0.0.7 | 176.16.1.7 | web01 |
| rsync、nfs | 10.0.0.41 | 172.16.1.41 | backup |
部署流程
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项目, 快速演示Log4j 的导入和演示。 第一步: 导入Log4j依赖 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.24.2</version&…...
VBA中类的解读及应用第十八讲:利用类方法,判断任意单元格类型
《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入࿰…...
查询品牌涉及两张表(brand、brand_admin_mapping)
文章目录 1、BrandController2、AdminCommonService3、BrandApiService3、BrandCommonService4、BrandSqlService涉及的表SQL 查询逻辑参数处理执行查询完整 SQL 逻辑参数映射总结 查询指定管理员下的品牌所涉及的表有哪些? http://127.0.0.1:8087/brand/admin/list…...
Eureka和Zookeeper、Nacos的区别
目录 一、Eureka与Zookeeper的区别 适用场景: 架构设计: 功能特性: 社区生态: 二、Eureka与Nacos的区别 接口方式: 实例类型: 健康检测: 服务发现: 一致性与可用性&#…...
微信小程序怎么实现非tabbar页面显示tabbar,自定义组件实现
微信小程序没有发现可以实现非tabbar页面显示tabbar的方法,但是可以在tabbar页面当中隐藏tabbar,使用wx.hideTabBar()方法就可以实现,在非tabbar页面调用wx.showTabBar()方法却会显示失败,不能显示tabbar onLoad() {wx.showTabBar…...
SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)
前言 前面给大家介绍了动态表头的导入,这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入,我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次,我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...
多种平台上安装部署调试Open5GS(四)
OpenWRT 源码安装 UERANSIM 安装依赖openwrt源码安装cmake其他依赖准备UERANSIM安装测试验证Open5GS 是一个功能完善的开源5G项目,具备5G、4G核心网功能,最新代码支持R17标准, 本系列文章介绍Open5GS在x86、ARM平台上的安装部署方法,并通过搭建UERANSIN、商用5G基站和终端两…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...
6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...
