我计划使用_cat/shards API获取ES集群中所有主分片的信息,但我没有看到任何选项只能在API响应中获取主分片,我尝试在h=index,store,prirep:p,index&v
中使用prirep:p
,但它也不起作用filter_pathfilter_path=prirep:p
,是否有任何方法可以过滤ES的cat API中的响应。
ES的样本响应
791261 STARTED 563.3mb p my_index
789324 STARTED 563.2mb p my_index
791140 STARTED 563.1mb p my_index
789066 STARTED 562.8mb p my_index
789896 STARTED 562.7mb p my_index
791138 STARTED 562.2mb r my_index
789993 STARTED 562.2mb r my_index
我想要的是下面的响应,注意r
(副本)分片在响应中被删除。
791261 STARTED 563.3mb p my_index
789324 STARTED 563.2mb p my_index
791140 STARTED 563.1mb p my_index
789066 STARTED 562.8mb p my_index
789896 STARTED 562.7mb p my_index
我不想使用jq解析响应,如此SO答案所示,因为我也将实现代码并在浏览器中使用Get请求。
我知道你对文本处理不感兴趣。但我在
linux
中为需要它的人写这个答案。
curl -s "[elastic-ip]:9200/_cat/shards" |awk '$3=="p"'