繁体   English   中英

如何使用 bash 脚本处理弹性搜索 resource_already_exists_exception

[英]How to handle elastic search resource_already_exists_exception using bash script

我对 Elastic 和 bash 脚本还很陌生。 谁能帮我解决以下问题-我如何跳过使用 bash 创建已经存在的弹性索引

首先,我在 bash 脚本中创建映射 -

#!/bin/bash

curl --user uid:password -X PUT **"https:localhost/newindex"** -H 'Content-Type: application/json' -d'{  "mappings": { "properties": {.....}}}}'

#然后我将数据添加到它

curl --user uid:password -X POST **"https:localhost/newindex"** -H 'Content-Type: application/json' -d'{"date":"data..."...... }'

如果我第一次运行它,它会起作用,但是当我第二次运行时,它会给我一个错误“resource_already_exists_exception” ,我该如何使用 bash 脚本处理这个问题

您可以使用 --fail 标志:

-f, --fail (HTTP) 在服务器错误时静默失败(根本没有 output)。 这主要是为了更好地使脚本等更好地处理失败的尝试。 在正常情况下,当 HTTP 服务器无法传递文档时,它会返回一个 HTML 文档说明(通常还描述原因等)。 该标志将阻止 curl 输出它并返回错误 22。

如果命令成功,退出代码将为零,因此您可以检查:

curl --fail --user uid:password -X POST "https:localhost/newindex" -H 'Content- 
Type: application/json' -d'{"date":"data..."...... }'

if [ 0 -eq $? ]; then … fi;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM