通过elasticSearch 结合shell 批量删除 ES中大量无效index

正则获取所有无效index信息到备选删除记录文件中

1
2
# 通过 curl 获取 es 所有index信息,再通过 grep正则过滤出我们要删除的index,awk 只获取index名称 到 index.log 文件中
curl "${server}/_cat/indices" | grep 'real_time_sales_temporary_new_2019092408*' | awk '{print $3}' > index.log

完整自动脚本如下

循环我们过滤出得无效index列表,执行 delete 操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/bash
# atovk 20190924

# elasticsearch 服务地址
server="http://10.12.11.1:9346"

# 获取 正则查询到的 index real_time_sales_temporary_new_2019092408*
curl "${server}/_cat/indices" | grep 'real_time_sales_temporary_new_2019092408*' | awk '{print $3}' > index.log

# 循环删除相关无效index
cat index.log | while read line
do
    echo "${line}"
    curl -XDELETE "${server}/${line}"
done