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

开源shell脚本系列-检查etcd集群可用性

714dca29bac3da32e7ff5a3f1e413792.png

图好看不?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 入学习交流群

http://www.lryc.cn/news/19602.html

相关文章:

  • 资源限制类题目七大技巧 解决所有大数据资源限制类问题
  • adb命令导出手机已安装的android应用apk文件
  • 华为CT6100双千M路由记录
  • 【AcWing-Python-785】快速排序
  • 从 JDK 8 到 JDK 18,Java 垃圾回收的十次进化
  • 虚拟机VMware Workstation Pro环境搭建
  • 【华为OD机试模拟题】用 C++ 实现 - 敏感字段加密(2023.Q1)
  • 关于Java方法重写的一些反思
  • 【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识
  • 图形编辑器:拖拽阻塞优化
  • c++ 的 Eigen库写 AX=XB的矩阵求解代码
  • 正点原子linux驱动篇
  • MATLAB绘制雷达图/蜘蛛图
  • 算法入门,十字路口选择的案例,如果是南方,则向前行
  • 父传子与子传父步骤
  • Java concurrency - Task Execution
  • 浅谈BOM
  • 每日学术速递2.24
  • SpringBoot 面试问答总结(VIP典藏版)
  • CSS 定位网页元素【快速掌握知识点】
  • 构建Docker基础镜像(ubuntu20.04+python3.7.1+chrome101+chromedriver101)
  • 最新最全Java面试知识
  • 个人电脑需求严重疲软,联想集团财务前景仍不乐观
  • 软件测试面试在简历上写了“精通”后,拥有工作经验的我被面试官问到窒息...
  • 色环电容读数方法要点总结
  • C++函数新思想和标准的输入和输出
  • 华为OD机试真题Java实现【汽水瓶】真题+解题思路+代码(20222023)
  • WindownsPowershell中的单引号和双引号
  • 【华为OD机试模拟题】用 C++ 实现 - 数组组成的最小数字(2023.Q1)
  • Ae:使用代理