由于ES接入的项目变多,之前所有索引都保留30天,现在需要根据业务不同,索引保留的天数可以配置,所以写了shell命令,可以根据配置删除过期索引,配合cron执行
索引按照天进行分隔,格式统一为:xxxx_yyyy.mm.dd
#/bin/bash
ES_URL="http://127.0.0.1:9200" #填写你的es对外http连接地址
ES_USER="username" #name代表你的你的es用户名
ES_PASSWORD="password" #password代表你的es用户密码
delete_index() {
echo -e "\nstart close and delete $1 days index"
beforeday=$(date -d '-'$1'days' +'%Y%m%d')
for i in `cat ./del_es_index_$1`; do
echo -e "\nstart to detect index of $i"
index_seq=`curl -s -u $ES_USER:$ES_PASSWORD $ES_URL/_cat/indices | awk '{print $3}' | grep "$i" | sort -n | sed -r 's/$i_(.*)/\1/'`
for j in `echo $index_seq`;do
indexday=`echo ${j:0-10}`
indexFormatDate=`echo $indexday | head -n 1 | sed 's/\.//g'`
if [[ $beforeday -ge $indexFormatDate ]]; then
echo -e "\n$(date '+%Y-%m-%d %H:%M:%S') es_index match successful,当前索引:\e[0;35m$j\e[0m"
curl -XPOST -u $ES_USER:$ES_PASSWORD "$ES_URL/$j/_close"
echo -e "$(date '+%Y-%m-%d %H:%M:%S') 索引\e[0;35m$j\e[0m, 关闭完成"
if [[ ` echo $? ` == 0 ]];then
curl -XDELETE -u $ES_USER:$ES_PASSWORD "$ES_URL/$j"
echo -e "$(date '+%Y-%m-%d %H:%M:%S') 索引\e[0;35m$j\e[0m, 删除完成"
else
echo -e "$(date '+%Y-%m-%d %H:%M:%S') 索引\e[0;35m$j\e[0m, 关闭失败,无法进行删除"
fi
else
echo -e "\n$(date '+%Y-%m-%d %H:%M:%S') es_index match fail,当前索引:\e[0;35m$j\e[0m"
echo -e "$(date '+%Y-%m-%d %H:%M:%S') 索引\e[0;35m$j\e[0m, 没有过期,不需要关闭,over.."
fi
done
done
}
delete_index 7 # 索引保留7天
delete_index 15 # 索引保留15天
在shell文件同目录放del_es_index_7,del_es_index_15两个文件,里面是需要保留7天或15天的索引名,不包括_yyyy.mm.dd,每个索引一行
如果要增加一个保留3天的配置,则新建del_es_index_3文件,并在shell里添加
delete_index 3 # 索引保留3天
分享到:
相关推荐
2. 配置Elasticsearch elasticsearch.bat即可启动。 启动后浏览器访问 127.0.0.1:9200 ,出现以下的json表示成功。 3.配置kibana Kibana启动时从文件kibana.yml读取属性。默认设置配置Kibana运行...
对elasticsearch的索引做了一个简单的介绍,可以作为项目培训的课件使用
elasticsearch索引流程,以前的笔记,希望有用
该篇文章源码:Nodejs实现自动清理elasticsearch过期索引(日志清理)--学习笔记 http://blog.csdn.net/gzy11/article/details/55260615
elasticsearch索引安装后所需的网页插件,plugin-head插件,安装下载即可
资源方法有单个的增删改查,模糊查询分页 ,固定字段的模糊查询,所有属性字段的模糊查询
Elasticsearch索引恢复
lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...
es索引模板
Elasticsearch7.0备份索引脚本,配置linux crontab可以自定完成定时备份功能,希望大家给个好评,谢谢
MySQL默认使用innodb引擎,底层采用b+树的方式来实现,而Es底层使用倒排索引的方式实现,使用倒排索引支持各种维度的分词,可以掌控不同粒度的搜索需求。(MYSQL8版本也支持了全文检索,使用倒排索引实现,有兴趣...
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
Spring Boot elasticsearch7.6.2基础操作:创建索引、新增数据、查询数据
使用ES+JavaWeb实现关键词索引相关文章内容
elasticsearch 同义词创建索引实例
另外索引创建之后,数据库数据如有改动,索引无法联动修改,ElasticSearch没有相关功能,我们只能根据修改频率重建索引,基本上没有实时性可言。 db-river-es正是为了解决这些问题而生。 项目介绍 名称:es-...
Elasticsearch-深入理解索引原理
今天小编就为大家分享一篇关于JAVA使用Elasticsearch查询in和not in的实现方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
Elasticsearch 可以用于:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式搜索引擎;可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。 Elasticsearch的文件存储 ...
通常,这是通过计划的作业来实现的,该作业从永久性数据存储区(例如MySQL或Postgres)读取数据并将其转换为Elasticsearch索引。 在许多情况下,重建索引需要一个干净的表,以便重建整个索引。 在不中断最终用户...