在删除索引时,使用了通配符,批量删除

/usr/bin/curl -v  -XDELETE "http://192.168.1.237:9200/*2021.10.11"

结果执行的时候一直报一个错
在这里插入图片描述
百度上查了说是:为了防止误删除,elasticsearch.yml 中的action.destructive_requires_name默认为true
,只要将这个参数改为false重启就可以了,但是我去看了一下,我的参数就是false
在这里插入图片描述
而且我原来是可以批量删除的,突然就不可以了,具体为啥我也不知道,只能自己手动写脚本去删除。

#!/bin/bash

delete_date=`date -d 'today -3 day' +'%Y-%m-%d'`
#将时间变成时间戳
ios_date=`date -d $delete_date +%s`

echo $ios_date

#获取所有索引
curl -XGET http://localhost:9200/_cat/indices | awk -F" " '{print $3}' |  grep -v kibana | grep -v async | grep -v apm   > /test.txt 

#过滤指定索引
for i in $(cat /test.txt)
  do
  #获取每个索引的时间
  index_date=`echo $i | awk -F"_" '{print $NF}' | sed 's/\./-/g'`
  index_date_ios=`date -d $index_date +%s`
  #echo $index_date
  #判断索引是否符合要求
  if [ $index_date_ios -le $ios_date ]
    then
    #删除索引
    curl -XDELETE localhost:9200/$i
    #echo $i
  fi
  done
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐