删除elasticsearch 30天前的所有索引

我的索引格式为

xxx-xxx-xxx-2019.06.27
xxx-xxxx-2019.06.27

脚本思路:

 获取目前 es上所有索引,以日期进行拆分,然后用索引时间对比一个月前的日期,日期小于一个月的直接删除

#!/bin/bash
# Remove the index of one month old in elasticserch
CMD_ECHO='echo'
SCRIPT_NAME=`basename $0`
LOG_PRINT="eval $CMD_ECHO \"[$SCRIPT_NAME]\" @$(date +"%Y%m%d %T") [INFO] :"
time_ago=30
es_cluster_ip=127.0.0.1
function delete_index(){
   comp_date=`date -d "${time_ago} day ago" +"%Y-%m-%d"`
   date1="${1} 00:00:00"
   date2="${comp_date} 00:00:00"
   index_date=`date -d "${date1}" +%s`
   limit_date=`date -d "${date2}" +%s`
    
   if [ $index_date -le $limit_date ];then
        $LOG_PRINT  "$1 will perform the delete task earlier than  ${time_ago} days ago" >> tmp.txt
        del_date=`echo $1 | awk -F  "-" '{print $1"."$2"."$3}'`
        curl -XDELETE http://${es_cluster_ip}:9200/*$del_date >> tmp.txt
   fi         

}

# get the date in all index
curl -XGET http://${es_cluster_ip}:9200/_cat/indices|awk -F " " '{print $3}'  | egrep "[0-9]*\.[0-9]*\.[0-9]*" |awk -F  "-" '{print $NF}' | awk -F  "." '{print $((NF-2))"-"$((NF-1))"-"$NF}' | sort | uniq | while read LINE   

do
  delete_index  ${LINE}
done

 

转载于:https://www.cnblogs.com/xmc2017/p/11201186.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值