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

某CICD系统分布式存储异常处理脚本

#!/bin/bash## authored by zhaoxc# 漏扫工具会使得 glusterfs 6.5 版本的卷处于异常状态。 异常时 gluster vol status xxx 状态为 N ; 而命令返回值无异常#VOL_LIST="vol "VOL_FILE="/root/glusterfs-recovery.log"log(){echo"$(date'+%Y-%m-%d %H:%M:%S')-$1"|tee-a"$LOG_FILE"}# 检查卷状态, 返回状态字符串check_volume(){localvol=$1localstatus_outputlocalvol_status="NULLNULL"# 获取卷状态详细输出status_output=$(/usr/sbin/gluster volume status"$vol"2>&1)localsingle_line_output=$(echo"$status_output"|tr'\n'' ')ifecho"$single_line_output"|grep-q"Brick.*$vol";thenlocalbrick_section=$(echo"$single_line_output"|grep-o"Brick[^B]*$vol[^B]*")localonline_status=$(echo"$brick_section"|grep-oE"\s[YN]\s"|tr-d' ')if["$online_status"="N"];thenvol_status="offline"elif["$online_status"="Y"];thenvol_status="online"elsevol_status="unknown"fifiecho"$vol_status"}recover_volume(){localvol=$1log"开始恢复卷:$vol"# 停止卷log"停止卷:$vol"if/usr/sbin/gluster volume stop"$vol"force--mode=script>>"$LOG_FILE"2>&1;thenlog"卷$vol停止成功"elselog"卷$vol停止操作完成"fisleep5# 启动卷log"启动卷:$vol"if/usr/sbin/gluster volume start"$vol">>"$LOG_FILE"2>&1;thenlog"卷$vol启动成功"return0elselog"卷$vol启动失败"return1fi}main(){localvol_status="EmptyEmpty"localOFFLINE_VOLUMES=()log"=== 开始 GlusterFS 卷状态检查 ==="log"当前VOL_LIST的值:$VOL_LIST"log"VOL_LIST中的卷数量:$(echo$VOL_LIST|wc-w)"# 检查每个卷forvolin$VOL_LIST;dolog"检查卷:$vol"# 获取卷状态vol_status=$(check_volume"$vol")log"本卷检查的返回值为:$vol_status>>>>>>>>>>>>"# 根据状态决定是否重启if["$vol_status"="offline"]||["$vol_status"="unknown"];thenOFFLINE_VOLUMES+=("$vol")recover_volume"$vol"elif["$vol_status"="online"];thenlog"卷$vol状态正常,无需处理"elselog"卷$vol状态异常:$vol_status"filog"---"done# 输出结果摘要log"=== 检查完成 ==="if[${#OFFLINE_VOLUMES[@]}-eq0];thenlog"所有卷均在线"elselog"本次离线卷列表:${OFFLINE_VOLUMES[*]}"fi}# 执行主函数main
http://www.gsyq.cn/news/1627173.html

相关文章:

  • 沙姆角计算与视觉测量应用
  • 3个简单技巧:用OCRmyPDF快速解锁扫描PDF的搜索功能,永久告别复制难题![特殊字符]
  • 【软考零基础通关黄金72小时】:20年阅卷专家亲授,从报名到拿证的精准时间切割法
  • 软考上岸最后72小时冲刺指南:从报名到拿证的12个关键动作清单
  • 《干了5年供应链,考完SCMP才明白:我们管的不是“货”,是“时间”》
  • 智能散热系统设计:DRV8213驱动与RISC-V MCU应用
  • 四层板差分阻抗偏差五大误区-闭环避坑标准化流程
  • LiveView 的生命周期:mount、handle_event 和 Socket 到底怎么运转
  • S3已成为文件存储标准,阿里/腾讯/华为云都支持,Bun率先原生支持
  • 告别网盘限速:5分钟掌握九大网盘直链下载的终极方案
  • Linux Shell进程管理
  • 告别多软件制图内耗,paperxie 网页端 AI 科研绘图,一页搞定全学科论文可视化
  • 老旧iOS设备性能优化:系统降级与越狱定制技术指南
  • 影刀RPA新手教程:输入框自动填写完全指南——模拟输入vs键盘驱动vs JS注入三种方式对比
  • 10分钟告别C盘焦虑:Windows Cleaner开源清理工具完全攻略
  • 从零搭建可可视化思考链路的智能客服 Agent:拆解工具调用、决策日志与邮件归档完整实现
  • 汽车电子智能散热系统设计与PWM风扇控制优化
  • 智能井盖系统让城市管网运维管理更高效
  • Kimi K2.5四大模式原理与选型指南:快速/思考/智能体/集群如何正确匹配任务
  • 3步安装终极指南:让老旧安卓电视焕然一新的直播软件优化方案
  • 激光雷达vs纯视觉:2026智能驾驶传感器路线终极解析
  • 芯片烧录:从准备到完成的全流程解析
  • 2026自动驾驶量产核心岗位能力解构
  • ChatGPT生成分析报告真的可靠吗?27个真实业务场景验证的5大风险红线与校验清单
  • DRV8213电机驱动器与智能散热系统设计实战
  • 【金戈铁马】驰骋天下抓黑马主图选股公式用法详解
  • TM4C129XNCZAD与M24M01E-F的I²C存储扩展实战
  • DeepSeek-V4如何用开源与成本穿透力重构AI服务范式
  • Apache Shiro反序列化漏洞实战:从Vulhub复现到纵深防御
  • 冠宇仪器中标快检项目:盐都区农贸市场试剂采购彰显技术实力