gpt4 book ai didi

bash - 使用Bash循环删除未分配的Graylog2索引/碎片

转载 作者:行者123 更新时间:2023-12-03 01:03:07 25 4
gpt4 key购买 nike

我用于调试日志的Graylog2服务器上存在一些磁盘问题。现在有未分配的分片:

curl -XGET http://host:9200/_cat/shards

graylog_292 1 p STARTED 751733 648.4mb 127.0.1.1 Doctor Leery
graylog_292 1 r UNASSIGNED
graylog_292 2 p STARTED 756663 653.2mb 127.0.1.1 Doctor Leery
graylog_292 2 r UNASSIGNED
graylog_290 0 p STARTED 299059 257.2mb 127.0.1.1 Doctor Leery
graylog_290 0 r UNASSIGNED
graylog_290 3 p STARTED 298759 257.1mb 127.0.1.1 Doctor Leery
graylog_290 3 r UNASSIGNED
graylog_290 1 p STARTED 298314 257.3mb 127.0.1.1 Doctor Leery
graylog_290 1 r UNASSIGNED
graylog_290 2 p STARTED 297722 257.1mb 127.0.1.1 Doctor Leery
graylog_290 2 r UNASSIGNED
....

它有超过400个碎片。我可以删除它们而不会丢失数据,因为它是一个单节点设置。为此,我需要遍历索引(graylog_xxx)和分片(1,2,...)。

我如何使用Bash遍历这(2个变量)?删除API调用有2个变量,我需要替换(afaik):
curl -XPOST 'host:9200/_cluster/reroute' -d '{
"commands" : [ {
"allocate" : {
"index" : "$index",
"shard" : $shard,
"node" : "Doctor Leery",
"allow_primary" : true
}
}
]
}'

令我困扰的是,未分配的分片没有节点。但是在API调用中,我需要指定一个。

最佳答案

在您共享的_cat/shards输出形式中,看起来就像是未分配的副本,您可以通过更新集群设置并将副本计数设置为0来删除它们,如下所示:

curl -XPUT 'localhost:9200/_settings' -d '{
"index" : {
"number_of_replicas" : 0
}
}'

运行上述curl之后,您的群集将再次变为绿色。

关于bash - 使用Bash循环删除未分配的Graylog2索引/碎片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34611734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com