我对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(服务器错误时静默失败(根本没有输出(。这样做主要是为了更好地启用脚本等来更好地处理失败的尝试。在正常情况下,当HTTP服务器无法传递文档时,它会返回一个HTML文档来说明这一点(通常还会描述原因等(。该标志将阻止卷曲输出,并返回错误22。
如果命令成功,退出代码将为零,因此您可以检查:
curl --fail --user uid:password -X POST "https:localhost/newindex" -H 'Content-
Type: application/json' -d'{"date":"data..."...... }'
if [ 0 -eq $? ]; then … fi;