1.每日复盘与今日内容

1.1复盘

  • Rsync:本地模式、远程模式🍟🍟🍟🍟🍟、远程守护模式🍟🍟🍟🍟🍟
  • 安装、配置Rsync
  • 启动、测试服务
  • 备份案例

1.2今日内容

  • NFS优缺点
  • NFS服务:开启、配置、启动等🍟🍟🍟🍟🍟
  • NFS参数
  • Isync配置
  • 公司案例

2.NFS服务

1.作用:

实现数据一致性--共享存储

  • 哪为什么web01和web02同时访问不会显示端口占用呢?

原因:NFS有Portmap--端口映射,将端口映射到其他没被使用的上面

2.NFS存储优点

1️⃣NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。

2️⃣NFS文件系统内存放的数据都在文件系统之上,所有数据都是能看得见。

3.NFS服务部署

  • 克隆服务器:

1.将两个网卡的最后一段改为31

2.将主机名改为NFS

1️⃣安装服务

yum -y install nfs-utils

2️⃣配置服务

# 配置文件默认为空
#进入/etc/exports
vim /etc/exports
#写入/data  172.16.1.0/24(rw,sync,all_squash)内容
/data  172.16.1.0/24(rw,sync,all_squash)
#挂载参数
#rw--可读可写
#sync--写入直接放入硬盘
#all_squash--匿名压缩(将客户端所有身份都设为匿名用户:默认为本地的傀儡用户)

3️⃣根据配置创建必要数据

#创建目录
mkdir /data
#设置/data属主属组
chown nobody.nobody /data
#检查
ll -d /data

4️⃣启动服务

#开启服务
systemctl start nfs
#开机自启动
systemctl enable nfs

5️⃣检测服务的配置文件是否正确

#检查文件--如果有内容代表成功;没有内容代表失败
cat /var/lib/nfs/etab 

6️⃣客户端挂载使用

#1.查看服务端共享的网段
showmount -e 172.16.1.31
###############WEB01################
#2.挂载NFS网络磁盘
mount -t nfs 172.16.1.31:/data /mnt
#查看受否挂载成功
df-h
###############WEB02################
#相同的目录
mount -t nfs 172.16.1.31:/data /mnt
df -h#3.开机自动挂载
vim /etc/fstab
#写入内容
172.16.1.31:/data 			  /mnt  		  nfs     defaults        0 0

可以看到WEB01和WEB02都是操作的/mnt目录,可看作是共享目录

  • 验证:

第一步:WEB01在挂载处创建web01.txt在02和NFS上能否看到

root@WEB01 ~# touch /mnt/web01.txt
root@NFS ~# ll /data/
root@WEB02 ~# ll /mnt/

第二步:NFS在挂载处删除web01.txt在01和02上能否看到

root@NFS ~# rm -fr /data/web01.txt
root@WEB01 ~# ll /mnt/
root@WEB02 ~# ll /mnt/

4.NFS存储缺点

1️⃣存在单点故障, 如果构建高可用维护麻烦web->nfs()->backup

2️⃣NFS数据明文, 并不对数据做任何校验。

3️⃣客户端挂载NFS服务没有密码验证, 安全性一般(内网使用)

3.NFS参数

1.验证只读--ro

#1.将配置文件/etc/exports修改为如下
/data  172.16.1.0/24(ro,sync,all_squash)#2.重启生效
systemctl restart nfs
  • 客户端测试
#web01下创建
touch /mnt/web01.txt#web02下创建
touch /mnt/web02.txt

2.指定匿名用户 anonuid=666 anongid=666

#1.将配置文件/etc/exports修改为如下
/data  172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)#2.创建uid和gid为666的www虚拟用户
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www
id www#3.重启生效
systemctl restart nfs#4.修改目录的属主属组为www
chown www.www /data
ll -d /data

4.NFS单点故障

  • 第一问:31执行rsync推送命令,以什么身份写入到41/data目录?

答:使用rsync_backup身份。

/data 属主 数组 rsync rsync rwxr-xr-x

  • 第二问:web服务器挂载到41/data web服务器以什么身份进入到/data?

答:41部署NFS的匿名压缩用户为nobody

故先将两个用户统一

5.部署Isync服务

1️⃣用户统一为www用户--所有服务器

groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www

2️⃣backup服务器增加一个data模块

cat /etc/rsyncd.conf
uid = www
gid = www
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]
comment = welcome to oldboyedu backup!
path = /backup[data]			
path = /data#重启
systemctl restart rsyncd#设置属主属组
chown www.www /backup/ /data
ll -d /data#清空目录
rm -rf /data/*#NFS测试
rsync  -avz /etc/hosts rsync_backup@172.16.1.41::data

3️⃣NFS部署lsync服务实时监控/data

#1.安装
yum -y install lsyncd#2.配置
#配置文件写入/etc/lsyncd.conf
vim /etc/lsyncd.conf
settings {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::data",delete = true,delay = 15,rsync = {binary = "/usr/bin/rsync",password_file = "/etc/rsyncd.pwd",archive = true,compress = true,}
}###########配置详解#############
[root@nfs ~]# cat /etc/lsyncd.conf
settings {logfile = "/var/log/lsyncd/lsyncd.log",			# 日志文件statusFile = "/var/log/lsyncd/lsyncd.status",   # 状态日志文件maxProcesses = 2,								# 最大进程数量nodaemon = false,							    # 守护进程方式运行
}
#########如果还想添加监控模块,再复制以下修改即可
sync {default.rsync,									# 使用rsync命令source = "/data/",								# 实时监控的目录target = "rsync_backup@172.16.1.41::data",delete = true,delay = 1,										# 延时1秒					rsync = {binary = "/usr/bin/rsync",			        # 命令的绝对路径password_file = "/etc/rsyncd.pwd",			# 密码文件实现免交互archive = true,								# 类似-acompress = true,					        # 类似-z}
}
############################3.根据配置创建必要信息
echo 123 >/etc/rsyncd.pwd
chmod 600 /etc/rsyncd.pwd
ll /etc/rsyncd.pwd#4.启动服务
systemctl start lsyncd
systemctl enable lsyncd#5.测试服务
root@WEB01 /mnt# touch 1.txt
#WEB02的/mnt上有

4️⃣41服务器部署NFS服务

#下载nfs服务
yum -y install nfs-utils
#/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)写入/etc/exports
vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
#查看
cat /var/lib/nfs/etab 
#开启服务
systemctl start nfs
#查看
cat /var/lib/nfs/etab 

5️⃣模拟31挂掉

ifdown ens34
  • df -h就会很卡--一直在尝试连接

6️⃣web01和web02卸载31然后挂载到41服务器

#使用/etc/mounts查看挂载点
cat /etc/mounts#强制卸载挂载点
umount -f /mnt#显示挂载情况
showmount -e 172.16.1.41#查看
mount -t nfs 172.16.1.41:/data /mnt
ll /mnt/

6.脚本案例

  • 环境准备

服务端: Rsync服务 10.0.0.41

客户端: 10.0.0.7 10.0.0.31

客户端脚本需求
1.客户端提前准备存放的备份的目录,目录规则如下:/backup/web01_172.16.1.7_20251010
#命令拼接
date_dir=`hostname`_`hostname -I | awk '{print $1}'`_`date +%Y%m%d`
mkdir -p /backup/$date_dir2.客户端在本地打包备份(hosts passwd crontab)拷贝至/backup/web01_172.16.1.7_20251010
tar -zcf /backup/$date_dir.tar.gz /etc/hosts /etc/passwd3.客户端最后将备份的数据进行推送至备份服务器41
rsync -avz --password-file=/etc/rsync.pass /backup/$date_dir  rsync_backup@172.16.1.41::backup4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
find /backup/ -mtime +7|xargs rm -rf5.客户端每天凌晨1点定时执行该脚本(定时每分钟执行)
vim /usr/C.bash#设置变量
date_dir=`hostname`_`hostname -I | awk '{print $1}'`_`date +%Y%m%d`#命令操作
#2.创建唯一标识的目录 以主机名+IP+时间
mkdir -p /backup/$date_dir#3.打包重要的文件放入上面创建好的目录下
tar -zcf /backup/$date_dir.tar.gz /etc/hosts /etc/passwd /etc/crontab#4.md5sum校验
md5sum /backup/*.tar.gz > /backup/md5.log#5.推送目录到rsync服务器
rsync -avz --password-file=/etc/rsync.pass /backup/  rsync_backup@172.16.1.41::backup#6.删除7天前的文件
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;#客户端每天凌晨1点定时执行该脚本
vim /etc/crontab
#写入
00 01 * * * root sh /usr/C.bash
  • 环境准备

#配置好邮件

yum install -y mailx sendmail

#将以下内容写到最后
cat >>/etc/mail.rc <<EOF
set from=lidao996@163.com
set smtp=smtp.163.com
set smtp-auth-user=lidao996@163.com
set smtp-auth-password=xxxxxxxx
set smtp-auth=login
EOF
服务端需求
1.服务端部署rsync,用于接收客户端推送过来的备份数据
[root@backup ~]# cat /etc/rsyncd.conf 
uid = www
gid = www 
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]
comment = welcome to oldboyedu backup!
path = /backup[data]			# 增加data模块 对应的/data目录
path = /data2.服务端需要每天校验客户端推送过来的数据是否完整
md5sum -c  /backup/*_*_`date +%Y%m%d`/*.log > /opt/md5.txt3.服务端需要每天校验的结果通知给管理员
mail -s "${TIME}_备份校验结果" "邮箱" < /opt/md5.txt4.服务端仅保留6个月的备份数据,其余的全部删除
find /backup -mtime +180|xargs rm -rf

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

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

相关文章

二叉搜索树--通往高阶数据结构的基石

目录 前言&#xff1a; 1、二叉搜索树的概念 2、二叉搜索树性能分析 3、二叉搜索树的实现 BinarySelectTree.h test.cpp 4、key 和 key / value&#xff08; map 和 set 的铺垫 &#xff09; 前言&#xff1a; 又回到数据结构了&#xff0c;这次我们将要学习一些复杂的…

Profinet转Ethernet IP网关接入五轴车床上下料机械手控制系统的配置实例

本案例为西门子1200PLC借助PROFINET转EtherNet/IP网关与搬运机器人进行连接的配置案例。所需设备包括&#xff1a;西门子1200PLC、Profinet转EtherNet/IP网关以及发那科&#xff08;Fanuc&#xff09;机器人。开启在工业自动化控制领域广泛应用、功能强大且专业的西门子博图配置…

专题二_滑动窗口_长度最小的子数组

引入&#xff1a;滑动窗口首先&#xff0c;这是滑动窗口的第一道题&#xff0c;所以简短的说一下滑动窗口的思路&#xff1a;当我们题目要求找一个满足要求的区间的时候&#xff0c;且这个区间的left和right指针&#xff0c;都只需要同向移动的时候&#xff0c;就可以使用滑动窗…

解锁高效开发:AWS 前端 Web 与移动应用解决方案详解

告别繁杂的部署与运维&#xff0c;AWS 让前端开发者的精力真正聚焦于创造卓越用户体验。在当今快速迭代的数字环境中&#xff0c;Web 与移动应用已成为企业与用户交互的核心。然而&#xff0c;前端开发者常常面临诸多挑战&#xff1a;用户认证的复杂性、后端 API 的集成难题、跨…

北京JAVA基础面试30天打卡04

1. 单例模式的实现方式及线程安全 单例模式&#xff08;Singleton Pattern&#xff09;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。以下是常见的单例模式实现方式&#xff0c;以及如何保证线程安全&#xff1a; 单例模式的实现方式饿汉式&#xff08;Eager Init…

Redis 缓存三大核心问题:穿透、击穿与雪崩的深度解析

引言在现代互联网架构中&#xff0c;缓存是提升系统性能、降低数据库压力的核心手段之一。而 Redis 作为高性能的内存数据库&#xff0c;凭借其丰富的数据结构、灵活的配置选项以及高效的网络模型&#xff0c;已经成为缓存领域的首选工具。本文将从 Redis 的基本原理出发&#…

耘瞳科技国产化点云处理软件,开启智能化三维测量新时代

在现代工业制造领域&#xff0c;三维点云数据已成为推动生产效率提升、质量控制优化以及智能制造转型的关键技术之一。三维点云数据能够提供高精度的物体表面信息&#xff0c;广泛应用于制造零件的质量检测&#xff1b;通过点云数据与CAD模型的对比分析&#xff0c;可以快速检测…

RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现

【RabbitMQ面试精讲 Day 8】死信队列与延迟队列实现 文章标签 RabbitMQ,消息队列,死信队列,延迟队列,面试技巧,分布式系统 文章简述 本文是"RabbitMQ面试精讲"系列第8天&#xff0c;深入讲解死信队列与延迟队列的实现原理与实战应用。文章详细解析死信队列的触发…

团结引擎 1.5.0 版本发布:Android App View 功能详解

核心亮点 原生安卓应用支持 2D & 3D 双形态呈现 编辑器全流程集成 灵活调控功能 多应用并行展示 智能座舱应用示例 快速入门指南 开发说明 功能支持 实验性功能 资源链接 团结引擎 1.5.0 版本已于 4 月 14 日正式上线。本次更新中&#xff0c;车机版引入了一项突…

基于SpringBoot的OA办公系统的设计与实现

文章目录前言详细视频演示具体实现截图后端框架SpringBoot持久层框架MyBaits成功系统案例&#xff1a;代码参考数据库源码获取前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输出高质量…

知识随记-----用 Qt 打造优雅的密码输入框:添加右侧眼睛图标切换显示

Qt 技巧&#xff1a;通过 QLineEdit 右侧眼睛图标实现密码可见性切换 文章目录Qt 技巧&#xff1a;通过 QLineEdit 右侧眼睛图标实现密码可见性切换概要整体架构流程技术名词解释技术细节实现效果展示概要 本文介绍如何使用 Qt 框架为 QLineEdit 控件添加一个右侧的眼睛图标&a…

Unity里的对象旋转数值跳转问题的原理与解决方案

文章目录1. 问题描述2. 问题原因3. 解决方案3.1通过多个父子关系从而控制旋转&#xff08;推荐&#xff09;3.2 使用四元数进行旋转1. 问题描述 我们现在写一个3D的Unity程序&#xff0c;我们现在设置了一个物体后&#xff0c;我们想旋转使其改为我们想要的情况。但是我们如果…

为什么现代 C++ (C++11 及以后) 推荐使用 constexpr和模板 (Templates) 作为宏 (#define) 的替代品?​

我们用现实世界的比喻来深入理解​​为什么 C 中的宏 (#define) 要谨慎使用&#xff0c;以及为什么现代 C (C11 及以后) 推荐使用 constexpr 和模板 (Templates) 作为替代品。​​&#x1f9e9; ​​核心问题&#xff1a;宏 (#define) 是文本替换​​想象宏是一个 ​​“无脑的…

PyCharm vs. VSCode 到底哪个更好用

在 Python 开发者中&#xff0c;关于 PyCharm 和 VSCode 的讨论从未停止。一个是功能齐备的集成开发环境&#xff08;IDE&#xff09;&#xff0c;另一个是轻快灵活的代码编辑器。它们代表了两种不同的开发哲学&#xff0c;选择哪个&#xff0c;往往取决于你的项目需求、个人习…

FPGA学习笔记——VGA彩条显示

目录 一、任务 二、分析 三、代码 四、实验现象 五、更新 一、任务 使用VGA实现彩条显示&#xff0c;模式是640x48060。 二、分析 首先&#xff0c;模式是640x48060&#xff0c;那么对照以下图标&#xff0c;知道其它信息&#xff0c;不清楚时序和VGA扫描方式的可以看看这…

ES-301A :让 Modbus 设备无缝接入工业以太网的高效桥梁

在工业自动化领域&#xff0c;串口设备与以太网的互联互通是提升系统效率的关键。ES-301A 工业以太网串口网关作为上海泗博自动化精心打造的专业解决方案&#xff0c;以强大的协议转换能力、工业级可靠性和灵活配置特性&#xff0c;成为连接 Modbus RTU/ASCII 设备与 Modbus TC…

【学习笔记】FTP库函数学习

【学习笔记】FTP库函数学习 FTP基本指令步骤 1、初始化会话句柄&#xff1a;CURL *curl curl_easy_init(); 2、设置会话选项&#xff1a; 设置服务器地址&#xff0c;设置登录用户和密码 curl_easy_setopt(curl, CURLOPT_URL, ftp_server); curl_easy_setopt(curl, CURLOPT_US…

ARM Cortex-M异常处理高级特性详解

1. 异常处理概述 ARM Cortex-M处理器提供了高效的异常处理机制&#xff0c;包含多种硬件优化特性&#xff0c;显著提升了中断响应性能和系统效率。这些特性对于实时嵌入式系统和网络协议栈&#xff08;如LwIP&#xff09;的性能至关重要。 1.1 Cortex-M异常处理架构 Cortex-M异…

【图像算法 - 08】基于 YOLO11 的抽烟检测系统(包含环境搭建 + 数据集处理 + 模型训练 + 效果对比 + 调参技巧)

一、项目背景与需求 【打怪升级 - 08】基于 YOLO11 的抽烟检测系统&#xff08;包含环境搭建 数据集处理 模型训练 效果对比 调参技巧&#xff09;今天我们使用YOLO11来训练一个抽烟检测系统&#xff0c;基于YOLO11的抽烟检测系统。我们使用了大概两万张图片的数据集训练了…

vue2升级vue3中v-model的写法改造

vue2选项式 <template><div><el-rowclass"group-title":title"$t(restore_default_parameters)">{{ $t(restore_default_parameters) }}</el-row><el-form-item :label"$t(restore_default_parameters)" class"…