删除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