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

麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储

 如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        上篇文章我们说到rsync虽好,但是缺乏实时性,在实际应用中,咱们可以将rsync写进脚本,然后写进定时任务去备份,如果每天凌晨1:00进行备份,早晨6:00磁盘损坏,9:00上班时发现之后紧急处理,在这3个小时内,数据丢失,也是不小的损失,那么如何实现短时间内的增量备份呢?有人说可以使用定时任务,每五分钟执行一次定时任务不就可以减少损失了吗,但是企业中的数据可不是五分钟能备份完的,所以有一个新的方案——sersync和lsync

目录

一、NFS

1、NFS服务配置

2、NFS参数

二、sersync服务

1、服务安装

2、启动进程:

三、lsync服务端部署

1、安装lsync服务

2、修改lsync配置文件

3、创建密码文件

4、启动lsync服务

5、验证是否可以同步


💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、NFS

1、NFS服务配置

服务端: 10.0.0.31 172.16.1.31  NFS
客户端: 10.0.0.7  172.16.1.7   WEB01
客户端: 10.0.0.41 172.16.1.41  BACKUP
1.服务安装
[root@nfs ~]#yum -y install nfs-utils
2.配置文件 默认为空
[root@nfs ~]#vim /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash)
注释:
/data         共享的目录
172.16.1.0/24 允许哪些IP地址可以挂载我
rw            挂载上之后的权限
r read write  写
ro            只读
sync          将数据同时写入到磁盘中
all_squash    将所有的来源用户全压缩为虚拟用户身份往本地的磁盘中写入
web01  
root用户: 
mount -t nfs 172.16.1.31:/data  /mnt
touch /mnt/1.txt
3.按配置创建数据
[root@nfs ~]#mkdir /data[root@nfs ~]#ll -d /datadrwxr-xr-x 2 root root 6 Apr 10 10:19 /data[root@nfs ~]#chown nfsnobody.nfsnobody /data[root@nfs ~]#ll -d /datadrwxr-xr-x 2 nfsnobody nfsnobody 6 Apr 10 10:19 /data4.启动服务 开机自启
[root@nfs ~]#systemctl start nfs[root@nfs ~]#systemctl enable nfs5.检查服务
[root@nfs ~]#cat /var/lib/nfs/etab 
/data   
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
检查下是否有65534的用户存在
[root@nfs ~]#grep 65534 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
客户端挂载:
web01: 需要安装nfs-utils 但是不需要启动服务,只安装即可
[root@web01 ~]#yum -y install nfs-utils
查看服务端共享的目录:
[root@web01 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
挂载
[root@web01 ~]#mount -t nfs 172.16.1.31:/data /mnt
写入开机自动挂载:
[root@web01 ~]#tail -1 /etc/fstab
172.16.1.31:/data            /mnt   nfs     defaults    0 0
41客户端挂载:
1.安装nfs-utils 不启动
[root@backup ~]#yum -y install nfs-utils
2.查看服务端共享目录
[root@backup ~]#showmount  -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.挂载
[root@backup ~]#mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]#df -hFilesystem         Size  Used Avail Use% Mounted on
devtmpfs           980M     0  980M   0% /dev
tmpfs              991M     0  991M   0% /dev/shm
tmpfs              991M  9.5M  981M   1% /run
tmpfs              991M     0  991M   0% /sys/fs/cgroup
/dev/sda3          18G  2.0G   16G  12% / 
/dev/sda1          197M  110M   88M  56% /boot
tmpfs              199M     0  199M   0% /run/user/0
172.16.1.31:/data  18G  2.0G   16G  12% /mnt
[root@backup ~]#umount /mnt
[root@backup ~]#df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        18G  2.0G   16G  12% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs           199M     0  199M   0% /run/user/0

2、NFS参数

修改参数ro
[root@nfs ~]#cat /etc/exports
/data/ 172.16.1.0/24(ro,sync,all_squash)
重启服务生效
[root@nfs ~]#systemctl restart nfs
客户端测试删除创建
指定匿名用户
1.创建匿名用户
[root@nfs ~]#groupadd -g666 www
[root@nfs ~]#useradd -u666 -g666 -s /sbin/nologin -M www
2.修改配置文件指定匿名用户
[root@nfs ~]#cat /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3.重启生效
[root@nfs ~]#systemctl restart nfs
4.客户端测试
无法写入,必须将/data目录属主属组修改为www用户
注意事项: 
centos7.x 启动服务并行运行 可能会导致fastab中的网络挂载不成功,需要写入/etc/rc.local

二、sersync服务

1、服务安装

nfs创建 /server/tools
安装服务 yum install rsync inotify-tools ‐y 
进入/server/tools
wget拉取 wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz 
解压到当前目录:tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
将解压后的文件改名:mv GNU‐Linux‐x86/ sersync
进入更改confxml.xml更改内容如下:
<createFile start="true"/> (false改为true)保存退出

2、启动进程:

# 查看启动参数 
[root@nfs01 sersync]# ./sersync2 ‐h 
set the system param 
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches 
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events 
parse the command param 
_______________________________________________________ 
参数‐d:启用守护进程模式 
参数‐r:在监控前,将监控目录与远程主机用rsync命令推送一遍 
参数‐n: 指定开启守护线程的数量,默认为10个 
参数‐o:指定配置文件,默认使用confxml.xml文件 
参数‐m:单独启用其他模块,使用 ‐m refreshCDN 开启刷新CDN模块 
参数‐m:单独启用其他模块,使用 ‐m socket 开启socket模块 
参数‐m:单独启用其他模块,使用 ‐m http 开启http模块 
不加‐m参数,则默认执行同步程序 
[root@nfs sersync]##./sersync2 -dro confxml.xml #相对路径启动 
[root@nfs sersync]#/server/tools/sersync/sersync2 -dro /server/tools/sersync/confxml.xml    #绝对路径启动
开启实时备份
echo 123456 > /etc/rsync.pas
如果nfs出现故障,希望将web客户端挂载至backup服务器上, 怎么实现?
#1.nfs和backup两台服务器应该保持一样(nfs配置。nfs共享的目录。nfs的权限) 
[root@backup ~]# yum install nfs‐utils ‐y 
[root@backup ~]# rsync ‐avz root@172.16.1.31:/etc/exports /etc/ 
[root@backup ~]# groupadd ‐g 666 www 
[root@backup ~]# useradd ‐u666 ‐g666 www 
#2.启动nfs服务 
[root@backup ~]# systemctl start rpcbind 
[root@backup ~]# systemctl start nfs‐server 
#3.修改rsync的权限 
[root@backup ~]# vim /etc/rsyncd.conf 
uid = www 
gid = www 
#4.修改授权 
[root@backup ~]# chown ‐R www.www /data/ /backup/ 
#5.重启rsync 
[root@backup ~]# systemctl restart rsyncd 
#6.进行一次数据推送, 然后模拟nfs故障(挂起虚拟机) 
#7.web强制卸载172.16.1.31:/data        
[root@web01 ~]# umount ‐lf /data 
#8.web尝试挂载172.16.1.41:/data  
[root@web01 ~]# mount ‐t nfs 172.16.1.41:/data /data/

三、lsync服务端部署

1、安装lsync服务

yum install -y lsyncd

2、修改lsync配置文件

vim /etc/lsyncd.conf
​
settings {          #lsync配置
logfile = "/var/log/lsyncd/lsyncd.log",    #lsync日志文件
pidfile = "/var/run/lsyncd.pid",     #记录进程ID的文件,可以不用配置
statusFile = "/var/log/lsyncd/lsyncd.status",    #运行状态文件,包括记录一些监控目录的变更信息
statusInterval = 5,     #将lsyncd的状态写入上面的statusFile的间隔,默认10秒
nodaemon = true,      #表示不启用守护模式,默认
inotifyMode = "CloseWrite",     #指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses = 5,    #同步进程的最大个数。假如同时有10个文件需要同步,而maxProcesses=5,则最大能看到有5个rysnc进程
maxDelays = 1,     #累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到
}
​
sync {     #sersync配置default.rsync,source = "/data",     #同步原目录target = "rsync_backup@10.0.0.41::data",     #同步目的地址,用户名,模块名delete = "running",     #目标目录和源目录不同时的删除方式,总共四种exclude = { ".tmp" },     #排除同步的文件,可以用rsync的正则delay = 3,     #累计事件,等待delay秒后进行rsync同步,默认15秒(最大累计到1000个不可合并的事件)。也就是15s内监控目录下发生的改动,会累积到一次rsync同步,避免过于频繁的同步init = false,     #只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是truersync = {     #rsync配置binary = "/usr/bin/rsync",     #rsync命令archive = true,compress = true,verbose = true,     #同步详细模式输出password_file = "/etc/clint.password",     #其他的一些配置,这里表示限速,单位kb/s}
}

3、创建密码文件

echo "1" >/etc/clint.password
chmod 600 /etc/clint.password

4、启动lsync服务

systemctl restart lsyncd

5、验证是否可以同步

1.在lsync服务端监控的目录创建文件
touch test{01..10}.txt
​
2.在rsync服务端的备份目录中查看是否同步
ls

数据备份服务的学习到此告一段落了,明天学点好玩的东西,ssh远程连接~~~~


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~

相关文章:

麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 上篇文章我们说到rsync虽好&#xff0c;但是缺乏实时性&#xff0c;在实际应用中&#xff0c;咱们可以将rsync写进脚本&#xff0c;然后写进定时任务去备份&#xff0c;如果每天凌晨1&#xff1a;00…...

将OBJ或GLB文件转换为3DTiles

格式简介 GLB文件&#xff08;.GLB&#xff09;代表“GL传输格式二进制文件”&#xff0c;是用于共享3D数据的标准化文件格式。确切地说&#xff0c;它可以包含有关三维模型、场景、模型、光源、材质、节点层次和动画的信息。 OBJ文件是一种文本文件格式&#xff0c;这就意味…...

Flink DataStream API 编程指南

(对于Flink的开发,建议使用Java,Scala的支持未来会被移除) DataStream是什么 DataStream API得名于DataStream这个Java类,可以将它们视为可以包含重复项的不可变数据集合。该数据可以是有限的,也可以是无限的,用于处理它们的API是相同的。 DataStream在用法上和普通的…...

tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)

任务一&#xff1a;What is HTTP(S)?&#xff08;什么是http&#xff08;s&#xff09;&#xff09; 1.What is HTTP? (HyperText Transfer Protocol)&#xff08;什么是 HTTP&#xff1f;&#xff08;超文本传输协议&#xff09;&#xff09; http是你查看网站的时候遵循的…...

探索 Plotly:一个强大的交互式数据可视化库

探索 Plotly&#xff1a;一个强大的交互式数据可视化库 数据可视化是数据分析过程中不可或缺的一部分&#xff0c;它能帮助我们更直观地理解数据&#xff0c;发现数据中的趋势和规律。在众多可视化库中&#xff0c;Plotly 是一个非常强大的工具&#xff0c;它以其交互式、易用…...

Oracle 查询表占用空间(表大小)的方法

目录 概述方法一&#xff1a;使用 dbms_space 包方法二&#xff1a;查询 dba_extents 视图方法三&#xff1a;查询 dba_segments 视图总结 1. 概述 在Oracle数据库管理中&#xff0c;了解特定表或索引所占用的空间对于性能调优、存储规划以及资源分配至关重要。本文档介绍了三…...

机器人国际会议IROS论文latex模板

机器人国际会议IROS论文latex模板 文档 root.tex 可以配置为 US Letter 纸或 A4。请注意以下重要行&#xff1a;\documentclass[letterpaper, 10 pt, Conference]{ieeeconf} % 如果需要 a4paper&#xff0c;请注释掉此行%\documentclass[a4paper, 10pt, Conference]{ieeeconf} …...

雪泥鸿爪和屈指可数

paw这个单词&#xff0c;表示“爪或手”&#xff0c;是一个和hoof相对的单词&#xff1a; hoof n.(马等动物的)蹄paw n.爪子&#xff1b;(动物的)爪&#xff1b;(人的)手 v.挠&#xff0c;抓&#xff1b;动手动脚 所以&#xff0c;当你理解了 paw 和 hoof 是相对的概念时&…...

2024年度个人总结

一转眼已经2024年度最后一个月了&#xff0c;今年基本没有在CSDN发布内容&#xff0c;包括其他平台&#xff08;B站&#xff09;&#xff0c;倒是在其他地方&#xff08;我的个人网站和V2EX&#xff09;发布一些零碎的东西&#xff0c;主要是因为今年换了工作后太累了&#xff…...

ChatGPT接口测试用例生成的流程

通常&#xff0c;使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤。 收集接口信息 收集接口的相关文档和信息&#xff0c;如接口名称、请求方法、请求参数、返回结果等。这些是ChatGPT生成测试用例需要的输入信息。 这一步骤的重要性不可忽视&#xff0c;因为它为Chat…...

【读书笔记】《论语别裁》真人和假人

一、内容摘要 在《论语别裁》第01章中&#xff0c;作者探讨了“真人”与“假人”的概念&#xff0c;借鉴于庄子的思想&#xff0c;强调真正有道德修养且懂得人生真谛的人被称为“真人”&#xff0c;而那些未达到道德最高标准的人则称为“假人。孔子所提倡的“学”不仅仅是书本…...

JS字符串方法汇总

String.anchor //创建一个带有名称的 <a> 元素字符串 //已弃用 let str test str.anchor(name) //<a name"name">test</a>String.at let str 1234567 str.at(0) //1 str.at(1) //2 str.at(-1) //7 str.at(-2) //6String.big //已弃用 let …...

CentOs7使用yum安装docker

安装docker 一、安装docker依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2二、添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.…...

蓝桥杯刷题——day8

蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di个单位时间&#xff0c;即它最早可以于 Ti时刻开始降落&am…...

如何使用 WebAssembly 扩展后端应用

1. WebAssembly 简介 随着互联网的发展&#xff0c;越来越多的应用借助 Javascript 转到了 Web 端&#xff0c;但人们也发现&#xff0c;随着移动互联网的兴起&#xff0c;需要把大量的应用迁移到手机端&#xff0c;随着手端的应用逻辑越来越复杂&#xff0c;Javascript 的解析…...

BaseCTF_web_week3

复读机 输入的东西会在下方显示出来&#xff0c;wp说是简单的SSTI&#xff0c;这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染&#xff0c;SSTI漏洞就是用户插入了可以破坏模板…...

模型数据算法概论

模型数据算法是一类使用数据来构建、优化或训练数学模型的算法&#xff0c;常用于数据科学、机器学习和人工智能领域。它们的核心目标是从数据中提取模式或关系&#xff0c;以便在预测、分类或优化任务中应用。以下是一个简要的概述&#xff1a; 1. 模型 模型是用来描述数据特…...

什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?

将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作&#xff0c;从而能快速的做出更好的决策。 目 录&#xff1a; ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…...

Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型

Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型 Sigrity System SI Parallel Bus Analysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍pba_simple_em模板的使用,具体操作如下 双击启动System SI启动界…...

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具&#xff0c; 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业&#xff0c;实现对数据和系统的完全控制。 &#xfeff; &#xfeff; 1、MacOS服务端安装 Mac安装包下载地址&#xff1a;下载Mac安…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...