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

使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)

单机一键部署ssh+rsync+nfs+lsync

执行准备

主机信息

主机角色外网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

秘钥信息

#web01可以免密连接nfs和backup
[root@web01 ~]# ssh-keygen
[root@web01 ~]# ssh-copy-id 172.16.1.31
[root@web01 ~]# ssh-copy-id 172.16.1.41
#远程免密登录测试
#一定要测

脚本文件rnl.sh

创建文件

#创建脚本文件并编辑
[root@web01 ~]# vim rnl.sh

编写文件

#使用web01为backup服务器远程部署rsync服务
ssh 172.16.1.41 '
yum install -y rsync &> /dev/null
cat > /etc/rsyncd.conf <<EOF
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[code]
path = /code
[img]
path = /img
EOFgroupadd -g 666 rsync
useradd -g 666 -u 666  -M -s /sbin/nologin rsync
echo rsync_backup:123 > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd 
mkdir /code /img
chown rsync.rsync /code /img
systemctl start rsyncd &> /dev/null
systemctl enable  rsyncd &> /dev/null
exit
' &> /dev/null
echo '已成功为backup(172.16.1.41)部署rsync服务,共两个模块:[code]和[img]'
echo '--------------------------------------------------------------'ssh 172.16.1.31 '
#使用web01为nfs服务器部署nfs服务
yum install -y nfs-utils &> /dev/null
cat > /etc/exports<<EOF
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
EOFgroupadd -g 666 rsync
useradd -g 666 -u 666  -M -s /sbin/nologin rsync
mkdir /data
chown rsync.rsync /data/
systemctl start nfs &> /dev/null
systemctl enable nfs &> /dev/null
exit
'  &> /dev/null
echo '已成功为NFS(172.16.1.31)部署nfs服务,共享目录为/data'
echo '--------------------------------------------------------------'ssh 172.16.1.31 '
#使用web01为nfs服务器部署lsync服务
yum install -y lsyncd &> /dev/null
cat > /etc/lsyncd.conf<<EOF
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::img",delete = true,delay = 1,rsync = {binary = "/usr/bin/rsync",password_file = "/etc/rsyncd.pwd",archive = true,compress = true,}
}
EOFecho 123 > /etc/rsyncd.pwd
chmod 600 /etc/rsyncd.pwd
systemctl start lsyncd &> /dev/null
systemctl enable lsyncd &> /dev/null
exit
'  &> /dev/null
echo '已成功为NFS(172.16.1.31)部署lsync服务,监控目录为本机的/data'
echo '若/data发生变化将会发送给172.16.1.41的/img目录'
echo '--------------------------------------------------------------'#web01本机挂载共享目录/data
mkdir /imag
mount -t nfs 172.16.1.31:/data /imag
echo '已成功挂载172.16.1.31:/data目录于本机的/imag目录'
echo '--------------------------------------------------------------'
echo '****rsync+nfs+lsync 服务部署完成,进行测试吧!****'

执行文件

[root@web01 ~]# sh 1.sh 
已成功为172.16.1.41部署rsync服务,共两个模块:code和img
已成功为172.16.1.31部署nfs服务,共享目录为/data
已成功为172.16.1.31部署lsync服务,监控目录为/data,发生变化将会发送给172.16.1.41的/img目录
已成功挂载172.16.1.31:/data目录于本机的/imag目录
rsync+nfs+lsync 服务部署完成,进行测试吧!

测试服务

#在web01中的imag目录中创建文件
[root@web01 ~]# touch /imag/shell.txt
[root@web01 ~]# ll /imag/shell.txt 
-rw-r--r-- 1 666 666 0 Dec  5 20:30 /imag/shell.txt
#查看nfs中/data下文件是否存在
[root@nfs ~]# ll /data/
-rw-r--r-- 1 rsync rsync 0 Dec  5 20:30 shell.txt
#查看backup中模块img的/img目录下文件是否存在
[root@backup ~]# ll /img/
-rw-r--r-- 1 rsync rsync 0 Dec  5 20:30 shell.txt

解决单点故障脚本nfs.sh

使用web01为backup服务器部署nfs服务并监控故障

脚本文件

vim nfs.sh

编写脚本

ssh 172.16.1.41 '
yum install -y nfs-utils &> /dev/null
cat > /etc/exports << EOF
/img 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
EOFsystemctl start nfs
systemctl enable  nfs
exit
'#编写监控脚本
cat >> /neterror.sh << EOF 
#!/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 /imag &>/dev/null &
sleep 2
umount -lf /imag &>/dev/null
mount -t nfs 172.16.1.41:/img /imag
fi
EOF#编写监控脚本的定时任务
cat >> /etc/crontab <<EOF
01 * * * *  root 	sh /neterror.sh
EOF

相关文章:

使用ssh免密登录实现自动化部署rsync+nfs+lsync(脚本)

单机一键部署sshrsyncnfslsync 执行准备 主机信息 主机角色外网IP内网IP主机名nfs、lsync10.0.0.31176.16.1.31nfs客户端10.0.0.7176.16.1.7web01rsync、nfs10.0.0.41172.16.1.41backup 秘钥信息 #web01可以免密连接nfs和backup [rootweb01 ~]# ssh-keygen [rootweb01 ~]#…...

第425场周赛:最小正和子数组、重排子字符串以形成目标字符串、最小数组和、移除边之后的权重最大和

Q1、[简单] 最小正和子数组 1、题目描述 给你一个整数数组 nums 和 两个 整数 l 和 r。你的任务是找到一个长度在 l 和 r 之间&#xff08;包含&#xff09;且和大于 0 的 子数组 的 最小 和。 返回满足条件的子数组的 最小 和。如果不存在这样的子数组&#xff0c;则返回 -…...

常见矩阵分析法(BCG、GE、IE、SPACE、TOWS、优先、战略优先级、安索夫、风险矩阵):如何通过系统化方法助力战略决策与数据驱动决策

在快速变化的商业环境中&#xff0c;企业决策者面临着诸多复杂的选择与挑战。矩阵分析法作为战略分析的重要工具&#xff0c;能够系统化地分析企业的内外部环境&#xff0c;帮助管理层做出更加科学、合理的决策。本文将全面解析常见的矩阵分析法&#xff0c;并探讨它们在数据驱…...

沐风老师3DMAX摄相机阵列插件使用方法

3DMAX摄相机阵列插件&#xff0c;从网格对象或样条线的顶点法线快速创建摄相机阵列。该插件从网格的顶点或样条线的节点获取每个摄影机的位置和方向。 3DMAX摄相机阵列插件支持目前3dMax主流的物理相机、标准相机、VRay物理相机。 【版本要求】 3dMax 2015及更高版本 【安装方…...

踩坑日记-win电脑怎么登录虚拟机上部署的phpmyadmin?

前请提要 电脑win11&#xff0c;安装centOS7虚拟机&#xff0c;部署了linux 安装了docker和一些镜像容器&#xff0c;准备开发项目 访问 phpMyAdmin 时无法打开页面 访问 http://0.0.0.0:8899/ 时&#xff0c;提示无法访问此页面。0.0.0.0 表示 Docker 容器将监听宿主机上的…...

手写观察者模式

本人是JavaScript开发者&#xff0c;以下的示例也是以Javascript举例来说明的。 一、概念 当对象间存在一对多的关系时&#xff0c;使用观察者模式。当被观察的对象发生变化时&#xff0c;其所有的观察者都会收到通知并进行相应的操作。 二、具体例子 比如说&#xff0c;学…...

20.LMAX-DDD的极致性能架构

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 历史起源架构目标架构要素 时序对比传统时序事件溯源时序LMAX时序 单线程非阻塞异步IO&#xff08;reactor&#xff09;多线程单…...

axios的引入和基本使用

一、axios的引入 使用 pnpm add axios 二、使用axios 三、axios的使用方法补充 axios除了直接使用它实例上的方法&#xff0c;还可以通过配置的方式进行使用axios({})&#xff0c;传入一个对象&#xff0c;这个对象可以有如下属性&#xff1a; url&#xff08;字符串&#…...

14--VulnHub 靶机系列之Gear_Of_War#1

靶机下载地址&#xff1a; https://download.vulnhub.com/gearsofwar/Gear_Of_War%231.ova kali机(VMware)两张网卡&#xff1a; 第一张网卡使用VM0(桥接模式)-桥接到VirtualBox Host-Only Ethernet Adapter 第二张网卡使用NAT模式--用于访问网络 信息收集 kali机eth0的I…...

Python + OpenCV 系列:图像阈值处理

文章目录 引言 1. 阈值处理的基本概念2. OpenCV 中的阈值处理3. 常见的阈值类型3.1 二值化阈值3.2 反向二值化阈值3.3 截断阈值3.4 平滑阈值 4. 自适应阈值5. Otsu’s 阈值法6. 阈值处理的应用场景7. 总结 引言 图像阈值处理是计算机视觉和图像处理中一种非常基础而重要的技术…...

el-thee懒加载删除某条数据 ,el-thee懒加载重置,el-thee刷新某个节点

一、懒加载的tree已经全部展开&#xff0c;外部点击删除的时候不需要重新展开点击获取下一层数据 <template> <el-treeref"tree":data"treeData":props"defaultProps"render-after-expandhighlight-currentlazy:expand-on-click-node&q…...

如何在 JavaScript 中设置定时器?

在 JavaScript 中&#xff0c;设置定时器通常使用两个内置的函数&#xff1a;setTimeout() 和 setInterval()。它们允许你在指定的时间延迟后执行某个函数或者以某个间隔反复执行某个函数。下面&#xff0c;我将结合实际项目代码示例讲解如何使用它们。 1. setTimeout() — 延…...

LDR6500:音频双C支持,数字与模拟的完美结合

在当今数字化快速发展的时代&#xff0c;音频设备的兼容性和性能成为了用户关注的重点。LDR6500&#xff0c;作为乐得瑞科技精心研发的USB Power Delivery&#xff08;PD&#xff09;协议芯片&#xff0c;凭借其卓越的性能和广泛的应用兼容性&#xff0c;为音频设备领域带来了新…...

小型项目的数据库适合选用ClickHouse吗?

我们与MySQL比较。 MySQL 1. 传统的业务系统 用户管理订单处理产品信息企业基础数据 2. 特点 行存储&#xff0c;适合频繁的增删改事务支持完善小规模数据查询性能好数据一致性保证生态系统成熟&#xff0c;运维简单 ClickHouse 1. 数据分析场景 日志分析用户行为分析实…...

MySQL--》如何在SQL中巧妙运用函数与约束,优化数据处理与验证?

目录 函数使用 字符串函数 数值函数 日期函数 流程函数 约束 函数使用 函数是指一段可以直接被另一段程序调用的程序或代码&#xff0c;在mysql当中有许多常见的内置函数&#xff0c;接下来开始对这些内置函数及其作用进行简单的讲解和使用&#xff1a; 字符串函数 my…...

鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力

鸿蒙心路旅程&#xff1a;探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力 HarmonyOS Next 是华为推出的全新一代操作系统&#xff0c;旨在进一步推动分布式技术的深度应用和生态融合。本文将从技术特点、应用场景入手&#xff0c;通过实战案例与代码示例&…...

JavaWeb 9 MySQL DDL DML

前言 1、什么是数据库&#xff1f; 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库 2、目前主流的关系型数据库有哪些&#xff1f; 目前主流的关系型数据库&#xff1a;&#xff08;SQL语句是操作关系型数据库的统一标准&#x…...

哑资源对于通信行业的重要性以及哑资源管理的难点

一、哑资源定义与分类 1.1 哑资源概念界定 哑资源&#xff08;Dumb Resources&#xff09;在通信行业中指的是那些不具备智能处理能力的物理设备和设施。这些资源虽然不直接参与数据的生成和处理&#xff0c;但它们是通信网络正常运行的基础。哑资源包括但不限于电缆、天线、…...

聊聊大语言模型的上下文处理能力基本概念

一、Llama3的上下文处理能力 Llama 3不同版本的上下文处理能力有所不同&#xff1a; Llama 3基础版本&#xff1a;上下文长度一般为8k tokens左右&#xff0c;约相当于6,000字或10页文档.Llama 3.1版本&#xff1a;将上下文窗口提升到了128k tokens&#xff0c;这使得模型在处…...

总结几种不同风格的学术论文ChatGPT提示词

目录 1.不同写作风格的重要性 2.叙事写作 3.描述性写作 4.说明性写作 5.讨论性写作 小编先跟宝子们来看看一篇学术论文或者研究论文的基本组成部分&#xff0c;有助于后续提示词说明的整体结构和有效性&#xff1a; 引言&#xff1a;引言是写作的开篇部分&#xff0c;作者…...

鸿蒙技术分享:鸿蒙元服务踩坑血泪:文件下载、选择、打开

鸿蒙元服务踩坑&#xff1a;文件下载、选择、打开 因为项目有开发元服务的需求&#xff0c;因此需要将原本给应用开发封装的文件操作相关代码拿到元服务里用。本以为也没很复杂的功能&#xff0c;直接用应该问题不大&#xff0c;结果还是踩了坑…… 原本给应用使用的代码请查…...

12月通信基础知识补充2

看文献过程中不断发现有太多不懂的基础知识&#xff0c;故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关&#xff0c;故记录不会很深入请见谅。 【通信基础知识补充6】12月通信基础知识补充2 一、Walsh码1.1 Walsh码的基本特性1.2 …...

佑驾创新冲刺上市:交付进度延后,研发投入缩减,刘国清为实控人

近日&#xff0c;深圳佑驾创新科技股份有限公司&#xff08;MINIEYE&#xff0c;下称“佑驾创新”&#xff09;通过港交所聆讯并披露了聆讯后资料集&#xff08;即招股书&#xff09;。据贝多财经了解&#xff0c;佑驾创新获得了IPO备案通知书&#xff0c;拟在港交所上市。 对…...

【Linux系列】Linux 防火墙的详细学习

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

使用 Trace 实现 onnx 的导出 - 学习记录

使用 Trace 实现 onnx 的导出 一、使用 Trace 实现 onnx 的导出的流程二、代码分解2.1、定义模型2.2、分析模型操作类型2.3、构建钩子函数2.3.1、定义 hook 函数2.3.2、注册 Conv2d - hook 函数2.3.3、注册 ReLU - hook 函数2.3.4、注册 Add - hook 函数三、完整导出 onnx 代码…...

python字符串处理基础操作总结

1.去掉空格或者特殊符号 input_str.strip() #去掉所有空格 input_str.lstrip() #去掉左边空格 input_str.rstrip() #去掉右边空格 def print_hi():input_str 今天天气不错&#xff0c;风和日丽 out input_str.strip()print(input_str)print(out)if __name__ __main__:print…...

AI如何让PPT制作变得轻松与智能?用一键生成ppt!

谁还愿意把时间浪费在PPT的设计和内容排版上&#xff1f;尤其是对于那些需要频繁制作演示文稿的人来说&#xff0c;一份看起来专业的PPT往往会让人陷入“做与不做”的困境。但随着科技的飞速发展&#xff0c;传统的PPT制作方法正逐渐被更为高效的工具所取代&#xff0c;尤其是智…...

OpenCV相机标定与3D重建(11)机器人世界手眼标定函数calibrateRobotWorldHandEye()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算机器人世界/手眼标定&#xff1a; w T b _{}^{w}\textrm{T}_b w​Tb​ 和 c T g _{}^{c}\textrm{T}_g c​Tg​。 cv::calibrateRobotWorldHa…...

vscode通过ssh连接虚拟机进行开发

虚拟机自带的vscode很卡而且画质感觉不行&#xff0c;所以用这种方法解决 1.VSCODE安装扩展Tabnine(AI代码补全)&#xff0c;Remote Development 2.虚拟机终端ifconfig查看本机ip 192.168.43.197 开启ubuntu的SSH服务 sudo apt-get install openssh-server 配置vscode的ssh …...

TCP/IP协议详解(小白)

TCP/IP协议详解 TCP/IP协议包含了一系列的协议&#xff0c;也叫TCP/IP协议族&#xff08;TCP/IP Protocol Suite&#xff0c;或TCP/IP Protocols&#xff09;&#xff0c;简称TCP/IP。TCP/IP协议族提供了点对点的连结机制&#xff0c;并且将传输数据帧的封装、寻址、传输、路由…...

手机租赁系统开发全面解析与实现指南

内容概要 手机租赁系统的设计理念是为了满足用户对便捷、灵活的手机使用需求。想象一下&#xff0c;谁还愿意花大价钱买一部手机呢&#xff1f;尤其是当新款手机频繁推出时&#xff0c;租赁似乎成了更受欢迎的选择。这个系统旨在让用户可以随时随地选择租用不同型号的手机&…...

洛谷【排序】算法的题单 - 笔记

2024-12-09 - 第 37 篇 洛谷【排序】题单 - 笔记 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 洛谷【排序】题单合集 一、排序算法都有… 1. 简单排序算法 这些算法通常是基础的排序方法&#xff0c;容易理解和实现&#xff0c;但效率较低&#xff0c;适用于数据量较小的情况…...

《筑牢网络安全防线:守护数字时代的生命线》

《筑牢网络安全防线&#xff1a;守护数字时代的生命线》 一、网络安全的重要性二、网络安全面临的挑战三、网络安全技术四、网络安全案例分析五、如何加强网络安全防护六、结论 一、网络安全的重要性 网络安全在当今数字化时代的重要性不言而喻&#xff0c;它涵盖了多个关键领…...

VB.net进行CAD二次开发(二)与cad交互

开发过程遇到了一个问题&#xff1a;自制窗口与控件与CAD的交互。 启动类&#xff0c;调用非模式窗口 Imports Autodesk.AutoCAD.Runtime Public Class Class1 //CAD启动界面 <CommandMethod("US")> Public Sub UiStart() Dim myfrom As Form1 New…...

Python函数——函数的返回值定义语法

一、引言 在Python中&#xff0c;函数的返回值是其核心功能之一&#xff0c;它使得函数能够将计算结果传递给调用者&#xff0c;进而推动程序的逻辑和功能实现。理解和掌握函数的返回值语法&#xff0c;不仅能够提高代码的模块化和可读性&#xff0c;还能使程序更加高效和灵活…...

Python 布尔索引筛选数据

Python 布尔索引筛选数据 1. 布尔索引筛选数据1.1. 根据布尔索引对矩阵元素进行赋值1.2. 根据布尔索引对矩阵元素进行赋值1.3. 根据布尔索引对矩阵元素进行赋值 2. logits[logits < values[:, [-1]]] -1000References 1. 布尔索引筛选数据 布尔索引允许通过条件筛选矩阵中…...

mybatis缓存

一级缓存和二级缓存范围不一样 只缓存查询&#xff0c;缓存增删改没有意义 先在mybatis-config.xml加入 <setting name"cacheEnabled"value"true"/> 在mapper.xml中开启二缓存 <!--回收策略为先进先出&#xff0c;每隔60秒刷新一次&#xff0c…...

Linux下的编程

实验7 Linux下的编程 一、实验目的 熟练掌握Linux下Python编程的方法、函数调用方法以及shell编程中的控制结构。 二、实验环境 硬件&#xff1a;PC电脑一台&#xff0c;网络正常。 配置&#xff1a;win10系统&#xff0c;内存大于8G &#xff0c;硬盘500G及以上。 软件&a…...

使用Java创建RabbitMQ消息生产者的详细指南

目录 在现代分布式系统中&#xff0c;消息队列是实现异步通信的重要工具。RabbitMQ作为一种流行的开源消息代理&#xff0c;支持多种消息协议&#xff0c;广泛应用于微服务架构和事件驱动的应用程序中。本文将深入探讨如何使用Java创建RabbitMQ的消息生产者&#xff0c;发送消息…...

笔记本外接显示屏没声音

1、笔记本正常有声音&#xff0c;但是外接显示屏后没有声音了怎么回事呢&#xff1f;原来外接显示屏后笔记本的声音输出会自动选择显示屏的音频输出&#xff0c;但是显示屏可能没有声音输出所以导致笔记本没有声音。 2、解决办法&#xff1a;打开笔记本设置&#xff0c;选择声…...

【Linux】Linux权限管理:文件与目录的全面指南

在Linux系统中&#xff0c;权限管理是确保数据安全的关键。本文将为大家介绍Linux文件与目录的权限管理&#xff0c;帮助你理解如何设置和管理访问权限。无论你是新手还是有经验的用户&#xff0c;这里都将提供实用的技巧和知识&#xff0c;助你更好地掌握Linux环境。让我们一起…...

并发在前端中的应用?

‌并发在前端中的应用主要体现在处理多个请求和优化页面加载速度方面‌。前端并发处理通常涉及在极短时间内发送多个数据请求&#xff0c;例如在页面渲染时同时请求多个数据。通过并发处理&#xff0c;可以显著减少页面加载时间&#xff0c;提升用户体验。 前端并发处理的具体…...

Spring Boot助力,一键解锁招聘全流程信息精细化管理

2系统相关技术 2.1 Java语言介绍 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&#…...

沉浸式多用户跟踪解决方案

沉浸式多用户VR跟踪解决方案&#xff0c;支持使用HTC VIVE或Valve Index等消费级虚拟现实头盔在房间内执行大范围多用户跟踪。该解决方案不仅能够跟踪处于坐姿或其他静止用户的头部和控制器&#xff0c;还支持房间内多用户动态跟踪。 通常房间内的跟踪受限于特定的系统能力&…...

“切片赋值”创建列表批量操作“新”方法(Python)

[start:end]切片赋值&#xff0c;扩展了list批量增减元素的操作能力。 (笔记模板由python脚本于2024年12月06日 15:07:56创建&#xff0c;本篇笔记适合研python基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;…...

Linux中-vvv详细输出命令

在 Shell 脚本中&#xff0c;有时会看到某些命令后面加上 -vvv 或类似的选项。这个选项的作用通常与命令的 **调试模式** 或 **详细输出** 相关。不同的命令和工具对于选项的解释和处理方式不同&#xff0c;因此 -vvv 的具体含义取决于它所跟随的命令。 ### 一般来说&#xff…...

获取淘宝商品评论数据的API应用:市场调研|产品更新|用户数据

下面是一段我用item_review&#xff08;获取商品评论数据&#xff09;抓来的商品评论数据&#xff1a; "items": {"total_results": 375,"totalpage": 38,"page_size": 10,"page": "1","item": [{&quo…...

VRRP的知识点总结及实验

1、VRRP VRRP(Virtual Router Redundancy Protocol&#xff0c;虚拟路由器冗余协议)既能够实现网关的备份&#xff0c;又能解决多个网关之间互相冲突的问题&#xff0c;从而提高网络可靠性。 2、VRRP技术概述&#xff1a; 通过把几台路由设备联合组成一台虚拟的“路由设备”…...

群控系统服务端开发模式-应用开发-邮件发送工具类

一、邮件发送工具类开发 1、添加框架对应的SDK composer require phpmailer/phpmailer 2、添加工具集 在根目录下extend文件夹下创建Email文件夹&#xff0c;在Email文件夹下添加工具集控制并命名为EmailSender.php <?php /*** 邮件发送工具* User: 龙哥三年风水* Date: …...

pytest 的简单介绍

官方文档&#xff1a;pytest 文档 1. pytest 概述 pytest 是一个功能强大的 Python 测试框架&#xff0c;旨在简化单元测试和功能测试的编写与执行。它不仅支持简单的单元测试&#xff0c;还能进行更复杂的测试&#xff0c;如数据驱动的测试、并发测试等。pytest 支持自动化发…...