删除Elasticsearch指定时间段索引(保留最新N天索引)

#!/bin/bash
# 删除Elasticsearch索引
CMD_ECHO='echo'
SCRIPT_NAME=`basename $0`
LOG_PRINT="eval $CMD_ECHO \"[$SCRIPT_NAME]\" @$(date +"%Y%m%d %T") [INFO] :"
# 删除N天前的索引
time_ago=2
# 集群IP地址
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的索引=========" >> delete_log_$(date +%Y-%m-%d).log
            del_date=`echo $1 | awk -F  "-" '{print $1""$2""$3}'`
            curl -XDELETE http://${es_cluster_ip}:9200/sw_metrics-$del_date >> delete_log_$(date +%Y-%m-%d).log
    fi
}
# 获取所有索引中的日期
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

删除Elasticsearch指定时间段索引(保留最新N天索引)
https://www.gmtgo.com/55.html
作者
大帅
发布于
2021年8月16日
许可协议