es:删除所有别名和索引的bash脚本

一,删除所有别名

#!/bin/bash


# Elasticsearch 地址
ES_HOST="http://localhost:9200"

content=$(curl -s -X GET "$ES_HOST/_alias/*")

# echo $content

# 获取所有alias
indexes=$(echo $content | jq 'keys[]')

# 删除所有alias
for index in $indexes; do
    # 去掉索引名字的双引号
    indexone=$(echo $index | tr -d '"')
    echo $indexone
    # 得到索引对应的别名,也去掉双引号
    onearr=$(echo $content | jq '.'${indexone})
    oneali=$(echo $onearr | jq '.aliases | keys[]')
    oneali2=$(echo $oneali | tr -d '"')
    echo $oneali2

    # 删除别名
    curl -XPOST "$ES_HOST/_aliases" -H "Content-Type: application/json" -d '{"actions" : [{ "remove" : { "index" : "'$indexone'","alias" : "'$oneali2'" } }]}'

done

echo "所有索引的别名已删除。"

 

二,删除所有索引

#!/bin/bash

# Elasticsearch 地址
ES_HOST="http://localhost:9200"

# 用json格式得到所有索引
content=$(curl -s -X GET "$ES_HOST/_cat/indices?format=json")

# echo $content

# 获取所有索引的名字
indexes=$(echo $content | jq -r '.[].index')

# 遍历所有索引
for index in $indexes; do
    echo $index

    # 删除索引
     curl -X DELETE "$ES_HOST/$index"

done

echo "所有索引已删除。"

 

请登录后发表评论

    没有回复内容