DELETE ES index数据

#!/bin/bash
CMD_ECHO='echo'
SCRIPT_NAME=`basename $0`
LOG_PRINT="evval $CMD_ECHO \"[$SCRIPT_NAME]\" @$(date +"%Y%m%d %T") [INFO] :"
time_age=10
function delete_index() {
  comp_date=`date -v-${time_age}d +"%Y-%m-%d"`
  date1="${1} 00:00:00"
  date2="${comp_date} 00:00:00"
  index_date=`date -j -f "%Y-%m-%d %H:%M:%S"  "$date1" +"%s"`
  limit_date=`date -j -f "%Y-%m-%d %H:%M:%S"  "$date2" +"%s"`
  if [ $index_date -le $limit_date ]; then
     del_date=`echo $1`
     echo "================deleting================="
     indices=`curl -s -XGET http://127.0.0.1:9200/_cat/indices --user elastic:"1qa@WSX" | awk '$3~/^logstash/{print $3}' | awk -F "2022" '{print $1}' | sort -n | uniq`
     for ics in $indices
     do
       #curl -XDELETE http://es-cn-2r42hydl9000slbni.elasticsearch.aliyuncs.com:9200/$ics-$del_date --user elastic:"1qaz)(*&@WSX
       echo $ics-$del_date
     done
  fi
}

curl -s -XGET http://127.0.0.1:9200/_cat/indices --user elastic:"1qa@WSX" | awk '$3~/^logstash/{print $3}' |awk -F "-" '{print $NF}' | awk -F "." '{print $((NF-2))"-"$((NF-1))"-"$NF}' | sort | uniq | while read line
do
  delete_index $line
done

MAC 下清理ES index 脚本, index如: logstash-ddl-2022-02-07, 可以根据自己的index名称,修改脚本适配

posted @ 2022-03-15 19:19  诗码者  阅读(159)  评论(0编辑  收藏  举报