博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch 自动删除索引脚本
阅读量:6867 次
发布时间:2019-06-26

本文共 1036 字,大约阅读时间需要 3 分钟。

脚本

原文

背景

需要定期清理的索引的后缀日期格式为YYYY.MM.DD,如:project-index-2017.10.01

思路

通过_cat/indices接口可以获取当前ES全部索引信息,取第三列为索引名。过滤出索引名中带有的日期字符串,然后进行日期比较,早于10天前的日期便可通过日期模糊匹配索引来删除。

#!/bin/bash# https://blog.csdn.net/felix_yujing/article/details/78207667####################################删除早于十天的ES集群的索引###################################function delete_indices() {    comp_date=`date -d "10 day ago" +"%Y-%m-%d"`    date1="$1 00:00:00"    date2="$comp_date 00:00:00"    t1=`date -d "$date1" +%s`    t2=`date -d "$date2" +%s`    if [ $t1 -le $t2 ]; then        echo "$1时间早于$comp_date,进行索引删除"        #转换一下格式,将类似2017-10-01格式转化为2017.10.01        format_date=`echo $1| sed 's/-/\./g'`        curl -XDELETE http://192.168.10.54:9200/logs-*$format_date    fi}curl -XGET http://192.168.10.54:9200/_cat/indices | awk -F" " '{print $3}' | awk -F"-" '{print $NF}' | egrep "[0-9]*\.[0-9]*\.[0-9]*" | sort | uniq  | sed 's/\./-/g' | while read LINEdo    #调用索引删除函数    delete_indices $LINEdone

添加定时任务 每天 1点10分

crontab -e10 1 * * * sh /tmp/es-index-clear.sh > /dev/null 2>&1
你可能感兴趣的文章
CentOS7 防火墙配置(关闭)
查看>>
Android静默安装实现方案,仿360手机助手秒装和智能安装功能
查看>>
Asp.Net Core获取当前上下文对象
查看>>
ppoint的使用
查看>>
MQ对比
查看>>
Buildroot 指定内核版本
查看>>
mysql生成不重复随机数(unique number generation)
查看>>
五种IO模型透彻分析
查看>>
22.Linux-块设备驱动之框架详细分析(详解)
查看>>
ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd
查看>>
struts2系列(二):struts2参数传递错误、struts2的输入错误验证
查看>>
spring mvc拦截器原理分析
查看>>
ARKit从入门到精通(6)-ARSession介绍
查看>>
C复杂声明举例
查看>>
TensorFlow基础笔记(11) max_pool2D函数
查看>>
vue2.0 自定义 饼状图 (Echarts)组件
查看>>
Uploadify404无效链接
查看>>
AngularJS------报错"The selector "app-user-item" did not match any elements"
查看>>
word中公式的排版及标题列表
查看>>
Android bitmap的六种压缩方式,Android图片压缩
查看>>