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

信创环境ES索引管理脚本:close, delete

背景

elastic-curator在信创环境无现成安装包,且现成一般无法联网,此时通过脚本管理es索引是最佳选择。

1, 脚本内容: es-close-del.sh

[root@myprojtest001 ]# cat es-close-del.sh
#/bin/bash#elastic地址
ELASTIC_URL=127.0.0.1:9200
#默认的删除时间
DELETE_MONTH=6
#默认的关闭时间
CLOSE_MONTH=1
#默认index
#INDEX_NAME=s_awqed_
INDEX_NAME=
ES_USER_PWD=elastic:123456#索引列表:例如 cs_myproj_2024 , qqq_myproj_2024_01, test_myproj_2024_01_03
# echo t1.2023.03_03 |egrep  -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|xargs |tr  '[:punct:]' '-'
##输出结果:2023-03-03
INDEX_MSG=`curl  -s -u "$ES_USER_PWD" -XGET ${ELASTIC_URL}/_cat/indices | grep _myproj_ `
if [[ -z $INDEX_NAME ]] ; thenINDEX_OPEN=`echo "$INDEX_MSG" |grep open | awk '{print $3}' | sort`
elseINDEX_OPEN=`echo "$INDEX_MSG" |grep $INDEX_NAME | grep open | awk '{print $3}' | sort`
fi#关闭索引的截止日期
CLOSE_DATE=`date -d "${CLOSE_MONTH} months ago" +%Y-%m-%d`
t_end_close=`date -d "${CLOSE_DATE}" +%s`#删除索引的截止日期
DELETE_DATE=`date -d "${DELETE_MONTH} months ago" +%Y-%m-%d`
t_end_del=`date -d "${DELETE_DATE}" +%s`#当前日期
t_end=`date +%s`
#遍历open的索引,判断是否应该关闭
for index in $INDEX_OPEN
do#获取索引日期#echo "-------$index--------"#INDEX_DATE=$(echo $index|sed -E  's@([a-zA-Z0-9_-]+)_myproj_@@g' |sed 's@_@-@g')INDEX_DATE=$(echo $index|egrep  -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|tr  '[:punct:]' '-')len1=${#INDEX_DATE} #es按年存,设置为该年份的最后一个月截止 xx_2024 --> xx_2024_12_31if   [ $len1 -lt 5 ]; thenINDEX_DATE=$INDEX_DATE"-12-31"#es按月存,设置为该月份的最后一天截止 xx_2024_01 --> xx_2024_01_28elif [ $len1 -lt 10 ]; then  INDEX_DATE=$INDEX_DATE"-28"fit_start=`date -d "${INDEX_DATE}" +%s`x=$((t_end - t_start))##比截止日期早的数据#时间差几个月(不足1月就为0: 例如 24/30=0): 保证有1个月数据x2=$((x / 3600 /24 /30 -1 ))if [ ${t_start} -lt ${t_end_close} ] && [ $x2 -ge $CLOSE_MONTH  ]; thenecho -e "\n close ${index} index"curl -u "$ES_USER_PWD" -XPOST ${ELASTIC_URL}/$index/_closefi
done#删除
#遍历open的索引,判断是否应该删除
INDEX_ALL=`echo "$INDEX_MSG" |grep close | awk '{print $3}' | sort`
for index in $INDEX_ALL
do#获取索引日期#echo "-----$index--------"#INDEX_DATE=$(echo $index|sed -E  's@([a-zA-Z]_?)@@g'|sed 's@_@-@g')#INDEX_DATE=$(echo $index|sed -E  's@([a-zA-Z0-9_-]+)_myproj_@@g' |sed 's@_@-@g')INDEX_DATE=$(echo $index|egrep  -o '[0-9]{4}([_.-][0-9]+([_.-][0-9]+)?)?'|tr  '[:punct:]' '-')len1=${#INDEX_DATE} #es按年存,设置为该年份的最后一个月if   [ $len1 -lt 5 ]; thenINDEX_DATE=$INDEX_DATE"-12-31"#es按月存,设置为该月份的最后一天elif [ $len1 -lt 10 ]; then  INDEX_DATE=$INDEX_DATE"-28"fit_start=`date -d "${INDEX_DATE}" +%s`x=$((t_end - t_start))##比截止日期早的数据#时间差几个月(不足1月就为0: 例如 24/30=0): 保证有1个月数据x2=$((x / 3600 /24 /30 -1))if [ ${t_start} -lt ${t_end_del} ] && [ $x2 -ge $DELETE_MONTH  ]; thenecho -e "\n delete ${index} index"curl -u "$ES_USER_PWD" -XDELETE ${ELASTIC_URL}/$indexfi
done

1, 脚本执行验证

[root@myprojtest001 ]# cat es-close-del.sh
close monitor_myproj_2023_09_07 index
{"acknowledged":true,"shards_acknowledged":true,"indices":{"monitor_myproj_2023_09_07":{"closed":true}}}delete monitor_myproj_2023_09_07 index
{"acknowledged":true}
http://www.lryc.cn/news/333639.html

相关文章:

  • torch-v1.3.1-build
  • C语言宏定义笔记
  • 设计模式:生活中的观察者模式
  • Qt实现Kermit协议(四)
  • 苏州金龙助力旅游客运加速蜕变
  • 头盔检测 | 基于Caffe-SSD目标检测算法实现的建筑工地头盔检测
  • Stable diffusion 加载扩展列表报错解决方法
  • Git(8)之分支间同步特定提交
  • 万得AI算法工程师一面面试题6道|含解析
  • 蓝桥杯23年第十四届省赛-异或和之和|拆位、贡献法
  • Unity进阶之路(1)回顾与思考
  • 【C语言】——指针八:指针运算笔试题解析
  • JVM字节码与类的加载——class文件结构
  • 小程序如何通过公众号发送新订单提醒
  • 聊聊公众号最让我不爽的两个痛点
  • 【leetCode】2810. 故障键盘
  • xshell7连接ubuntu18.04
  • 真正的力量:实力与人际关系的平衡艺术
  • Acwing.1388 游戏(区间DP对抗思想)
  • Numpy数组转换为csv文件
  • 替代安全指标(Surrogate Safety Measures (SSM) )
  • usb_camera传输视频流编码的问题记录!
  • Linux安装nginx保姆级教程
  • leetcode-判断二分图
  • 算法day30 回溯6
  • 分享three.js实现乐高小汽车
  • gpt的构造和原理
  • 基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】计算机毕业设计
  • K8S之Job和CronJob控制器
  • 基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。