shell之删除elasticsearch30天以前的索引
2018-10-15 16:34
423 查看
在elasticsearch的运维工作中,由于es每天会产生大量的日志,如果一直保存不进行删除的话,再大的磁盘空间也会不够用,由此需要删除满足条件的index,从而释放磁盘空间;
我们公司的es要求只保留30天的日志即可,超出30天的index则自动进行删除;
es-index-delete-30days-ago.sh
#!/bin/bash ############################################## #Author: Liuzhengwei - 1135960569@qq.com #QQ:1135960569 #Last modified: 2018-10-15 16:29 #Filename:es-index-delete-30days-ago #Description: 通过任务计划自动删除es中30天以前的索引,以释放空间 ############################################## source /etc/profile #定义删除30天以前的函数 delete_indices(){ check_day=`date -d '-30 days' '+%F'` index_day=$1 #将日期转换为时间戳 check_day_timestamp=`date -d "$check_day" +%s` index_day_timestamp=`date -d "$index_day" +%s` #当索引的时间戳值小于当前日期30天前的时间戳时,删除此索引 if [ ${index_day_timestamp} -lt ${check_day_timestamp} ];then #转换日期格式 format_date=`echo $1 | sed 's/-/\./g'` curl -XDELETE http://10.78.1.184:9200/*$format_date fi } curl -XGET http://10.78.1.184: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 LINE do #调用索引删除函数 delete_indices $LINE done
任务计划,每天执行一次:
0 2 * * * /server/scripts/es-index-delete-30days-ago.sh &> /dev/null
相关文章推荐
- ElasticSearch Java Api-删除索引
- elasticsearch删除索引报错【原】
- 分布式搜索elasticsearch java API 之(四)------删除索引数据
- 定时删除elasticsearch索引
- Elasticsearch 学习笔记 索引创建、插入、查询、修改、删除
- Elasticsearch创建索引,删除索引,添加mapping
- 定期删除elasticsearch 的index 索引
- elasticsearch手动创建和删除索引
- elasticsearch 索引创建,插入,修改,删除
- shell删除N天以前的日志文件
- elasticsearch5.0.1集群一次误删除kibana索引引发的血案
- 定期删除elasticsearch集群10天以上的索引
- ElasticSearch49:索引管理_快速上机动手实战创建、修改以及删除索引
- elasticsearch5.0.1集群一次误删除kibana索引引发的血案
- 分布式搜索elasticsearch java API 之(六)------批量添加删除索引
- Elasticsearch系列篇之删除索引
- elasticsearch核心知识--47.创建更新删除索引以及自定义分词器。
- Elasticsearch删除索引
- shell 删除指定时期以前的文件
- shell实现按日期删除elk系统产生的logstash日志索引数据