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

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

640.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" ]]; then
    echo "ETCD集群健康状态: 不健康"
    echo "ETCD Cluster Health: Unhealthy"
    echo $health
    exit 1
  else
    echo "ETCD集群健康状态: 健康"
    echo "ETCD Cluster Health: Healthy"
  fi
}
# 验证集群可读可写性
function check_read_write() {
  local value="hello world"
  # put
  ETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \
    --user=$ETCD_USERNAME:$ETCD_PASSWORD \
    put $ETCD_TEST_KEY "$value" >/dev/null
  if [[ $? -eq 0 ]]; then
    echo "写入ETCD集群成功,key: $ETCD_TEST_KEY, value: $value"
    echo "Write to ETCD cluster successfully, key: $ETCD_TEST_KEY, value: $value"
  else
    echo "写入ETCD集群失败,key: $ETCD_TEST_KEY, value: $value"
    echo "Write to ETCD cluster failed, key: $ETCD_TEST_KEY, value: $value"
    exit 1
  fi
  # get
  local ret=$(ETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \
              --user=$ETCD_USERNAME:$ETCD_PASSWORD \
              get $ETCD_TEST_KEY)
  if [[ "$ret" == *"$value"* ]]; then
    echo "从ETCD集群读取数据成功,key: $ETCD_TEST_KEY, value: $value"
    echo "Read from ETCD cluster successfully, key: $ETCD_TEST_KEY, value: $value"
  else
    echo "从ETCD集群读取数据失败,key: $ETCD_TEST_KEY, value: $value"
    echo "Read from ETCD cluster failed, key: $ETCD_TEST_KEY, value: $value"
    exit 1
  fi
  # delete
  ETCDCTL_API=3 etcdctl --endpoints=$ETCD_ENDPOINTS \
    --user=$ETCD_USERNAME:$ETCD_PASSWORD \
    del $ETCD_TEST_KEY >/dev/null


执行案例:


./etcd_check.sh


觉得不错别忘了给波哥点赞,分享哦!


相关文章
|
3天前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)
|
4天前
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。
|
10天前
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
|
16天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
21 1
|
3天前
|
Shell
Shell 脚本编程保姆级教程(下)
Shell 脚本编程保姆级教程(下)
|
28天前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
12天前
|
移动开发 网络协议 Shell
查看IP访问量的shell脚本汇总
查看IP访问量的shell脚本汇总
|
17天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
10 0
|
18天前
|
机器学习/深度学习 Unix Java
技术笔记:Linux之Shell脚本编程(一)
技术笔记:Linux之Shell脚本编程(一)
21 0
|
21天前
|
Shell
Shell脚本之条件语句if总结
Shell脚本之条件语句if总结