开源shell脚本系列-检查etcd集群可用性
图好看不?AI生成的,这几天也在测试AI绘图这个东东,挺牛叉的。咱们的社区工具平台在PC的web端已经完成了。
大家没事可以去看看,设置个主页也行其实挺好的:https://www.98dev.com/index,主要用于一些关键性新闻的收集,数据实时更新。
有啥意见和建议可以留言提给我。有好的IT资讯或者资源可以推荐给我,我到时候都会集成进去。
正在研究手机端页面和小程序,然后再集成各种AI项目进去。大概是这个思路。
说正事!
波哥根据自己的日常工作情况开源一个关于etcd的shell脚本。这个功能我已经集成到公司项目中了,用python写的,关联性比较强没办法单独开源出来,花点时间用shell重写了版。有需要的可以试试或者在我这个基础上改改。
脚本说明:
脚本需要可以指定集群地址,端口,账号密码以及脚本执行的循环次数。
脚本功能:
可以输出集群可用性,会对集群的/test/test.txt进行写入,读取,删除测试。结果考虑有可能中文乱码,双语显示。
#!/bin/bash# 配置etcd集群地址、端口、账号、密码
ETCD_ENDPOINTS="http://127.0.0.1:2379"
ETCD_USERNAME=""
ETCD_PASSWORD=""# 验证集群可读可写性的key
ETCD_TEST_KEY="/test/test.txt"# 循环次数
LOOP_TIMES=1# 验证etcd集群是否健康
function check_cluster_health() {local health=$(ETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \--user=$ETCD_USERNAME:$ETCD_PASSWORD \endpoint health 2>&1)if [[ $health =~ "unhealthy" ]]; thenecho "ETCD集群健康状态: 不健康"echo "ETCD Cluster Health: Unhealthy"echo $healthexit 1elseecho "ETCD集群健康状态: 健康"echo "ETCD Cluster Health: Healthy"fi
}# 验证集群可读可写性
function check_read_write() {local value="hello world"# putETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \--user=$ETCD_USERNAME:$ETCD_PASSWORD \put $ETCD_TEST_KEY "$value" >/dev/nullif [[ $? -eq 0 ]]; thenecho "写入ETCD集群成功,key: $ETCD_TEST_KEY, value: $value"echo "Write to ETCD cluster successfully, key: $ETCD_TEST_KEY, value: $value"elseecho "写入ETCD集群失败,key: $ETCD_TEST_KEY, value: $value"echo "Write to ETCD cluster failed, key: $ETCD_TEST_KEY, value: $value"exit 1fi# getlocal ret=$(ETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \--user=$ETCD_USERNAME:$ETCD_PASSWORD \get $ETCD_TEST_KEY)if [[ "$ret" == *"$value"* ]]; thenecho "从ETCD集群读取数据成功,key: $ETCD_TEST_KEY, value: $value"echo "Read from ETCD cluster successfully, key: $ETCD_TEST_KEY, value: $value"elseecho "从ETCD集群读取数据失败,key: $ETCD_TEST_KEY, value: $value"echo "Read from ETCD cluster failed, key: $ETCD_TEST_KEY, value: $value"exit 1fi# deleteETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \--user=$ETCD_USERNAME:$ETCD_PASSWORD \del $ETCD_TEST_KEY >/dev/null
执行案例:
./etcd_check.sh
觉得不错别忘了给波哥点赞,分享哦!
波哥
IT行业近二十年的IT老炮。常年潜伏于国企、各一二线大厂中。硬件集成入行,直至虚拟技术、容器化。岗位历经系统集成、DBA、全栈开发、sre、项目经理、产品经理、部门总监。
主要作品:
IT类资源汇聚门户:https://www.98dev.com
各大短视频平台:98dev
各大主要技术论坛博客:IT运维技术圈
长视频教学作品:《波哥讲网络》《波哥讲git》《波哥讲gitlab》
小程序:IT面试精选
构建技术社区:+V itboge1521 入学习交流群
相关文章:

开源shell脚本系列-检查etcd集群可用性
图好看不?AI生成的,这几天也在测试AI绘图这个东东,挺牛叉的。咱们的社区工具平台在PC的web端已经完成了。大家没事可以去看看,设置个主页也行其实挺好的:https://www.98dev.com/index,主要用于一些关键性新…...

资源限制类题目七大技巧 解决所有大数据资源限制类问题
有一个无符号整数的文件,数据个数有40亿个,如何通过1G的内存返回出现次数最多的数 1. 对每个数调用哈希函数得到哈希值,将哈希值模上100,进行小文件分类(相同的数一定在同一文件) 2. 将每个小文件内出现次…...
adb命令导出手机已安装的android应用apk文件
adb命令导出手机已安装的android应用apk文件,保存到PC电脑 前提条件是手机已经和PC电脑可以通过adb建立连接。 (1)通过adb shell命令获取当前手机所有已经安装的应用包名: adb shell pm list package (2)…...

华为CT6100双千M路由记录
该文章仅仅记录使用CT6100的流程,不提供任何参考和建议。 一、简介 设备:华为CT6100瘦客服端,J1800cpu,不包含外壳,有双千M网口,2G内存8G硬盘。系统:esir的高大全openwrt版本用途:对…...

【AcWing-Python-785】快速排序
题目:https://www.acwing.com/problem/content/description/787/对应视频讲解:https://www.acwing.com/video/227/题目描述注意本题数据已加强。快速排序过程中,如果每次取区间起点或者终点作为分界点,则会超时。分界点换成随机值…...

从 JDK 8 到 JDK 18,Java 垃圾回收的十次进化
经历了数千次改进,Java 的垃圾回收在吞吐量、延迟和内存大小方面有了巨大的进步。 2014 年3 月 JDK 8 发布,自那以来 JDK 又连续发布了许多版本,直到今日的 JDK 18 是 Java 的第十个版本。借此机会,我们来回顾一下 HotSpot JVM 的…...

虚拟机VMware Workstation Pro环境搭建
VMware Workstation Pro是一款虚拟化工具,允许用户在Windows PC上运行多个操作系统。这个平台提供一个安全和独立的环境,让用户在使用前,可以建立和测试应用程序、检查修补程序,以及尝试不同的操作系统。它附有虚拟机库 它允许用户…...

【华为OD机试模拟题】用 C++ 实现 - 敏感字段加密(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
关于Java方法重写的一些反思
最近在开发中遇到一个关于Java方法重写的一些问题,对于方法重写的用法以及可能导致的问题产生了一些思考,本文用于记录下这些想法。 问题场景 我们首先来看两段代码: Override protected void onActivityResult(int requestCode, int resu…...

【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.文件操作1.1 概述…...

图形编辑器:拖拽阻塞优化
大家好,我是前端西瓜哥。在图形编辑器中,想象这么一个场景,我们撤销了一些重要的操作,然后想选中一个图形,看看它的属性。你点了上去,然后你发现你再也无法重做了。 你以为你点了一下,但其实你…...
c++ 的 Eigen库写 AX=XB的矩阵求解代码
1.AXXB的矩阵求解代码(3*3) #include <iostream> #include <Eigen/Dense>int main() {// 定义矩阵A和BEigen::MatrixXd A(3, 3);A << 1, 2, 3,4, 5, 6,7, 8, 9;Eigen::MatrixXd B(3, 3);B << 10, 11, 12,13, 14, 15,16, 17, 18;// 求解AXXBEigen::Mat…...

正点原子linux驱动篇
linux驱动开发与裸机开发的区别 裸机直接操作寄存器,有些mcu提供了库,但还是很底层 1、linux驱动开发直接操作寄存器很麻烦不现实,主要是根据linux驱动框架进行开发(就是有很多操作都是一样的,我们只需要对一个程序模…...

MATLAB绘制雷达图/蜘蛛图
雷达图/蜘蛛图 1 方法一 函数来源为MATLAB | 如何使用MATLAB绘制雷达图(蜘蛛图) 1.1 调用函数 1.2 案例 2 方法二 函数来源为MATLAB帮助-spider_plot 2.1 调用函数 语法(Syntax): spider_plot(P)spider_plot(P, Name, Value, ...)h …...
算法入门,十字路口选择的案例,如果是南方,则向前行
从if判断start; 十字路口的案例 class HelloWorld { static void Main(string[] args) { /* Write C# code in this online editor and run it. */ Console.WriteLine("Hello World!"); string f…...

父传子与子传父步骤
父传子: 问题:父页面中引入子组件 把想要传给子页面的值用在子组件中用 :值“值” (用同一个值好区分)来绑定。 在子页面中用props接收 子组件不能改变父组件传过来的值。(传多个页面的时候是,比如父传孙的时候我会…...
Java concurrency - Task Execution
1.在单个线程里处理所有的请求:接受请求-处理请求 优点:逻辑简单 缺点:吞吐量低,资源利用率低,响应时间长 2.每个任务分配一个单独的线程来处理: 接受请求-创建线程-在线程里处理请求 优点: …...

浅谈BOM
什么是BOM BOM对于每个前端都不陌生,但是很多人都停留在表面,而没有深层次的研究过它。JavaScript有一个非常重要的运行环境就是浏览器,而且浏览器本身又作为一个应用程序需要对其本身进行操作,所以通常浏览器会有对应的对象模型…...

每日学术速递2.24
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.BUAA_BIGSCity: Spatial-Temporal Graph Neural Network for Wind Power Forecasting in Baidu KDD CUP 2022 标题:BUAA_BIGSCity:百度KDD CUP 2022风电预测…...
SpringBoot 面试问答总结(VIP典藏版)
1. 什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用Spring 的难度, 简省了繁重的配置,提供了各种启动器,使开发者能快速上手。 2. 为什…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...