【发布时间】:2020-08-31 07:39:15
【问题描述】:
下面是我的 bash 脚本:
#!/bin/bash message=$1 hostname=$2 appname=$3 severity=$4 data='{"action":"EventsRouter","method":"add_event","data":[{"summary":"'$message'","device":"'$hostname'","message":"message","component":"'$appname'","severity":"'$severity'","evclasskey":"nxlog","evclass":"nxlog","monitor":"localhost"}],"type":"rpc","tid":2}' echo "Total number of args : $#" echo "message = $message" echo "hostname = $hostname" echo "appname = $appname" echo "data = $data" curl -u "Eve:Welcome666" -k "https://myurlcom/zport/dmd/evconsole_router" -d $data -H "Content-Type:application/json"
我的错误是:
Total number of args : 4 message = mes hostname = hos appname = sev data = {"action":"EventsRouter","method":"add_event","data":[{"summary":"mes","device":"hos","message":"message","component":"sev","severity":"ap","evclasskey":"nxlog","evclass":"nxlog","monitor":"localhost"}],"type":"rpc","tid":2} {"uuid": "9b66e70d-44fc-463d-a347-786fe5502c13", "action": "EventsRouter", "result": {"msg": "Failed to create event: NoRouteException: Reply code: 312, Reply text: NO_ROUTE, Exchange:zenoss.zenevents.raw, Routing key: zenoss.zeneventnxlog", "type":"exception", "success": false}, "tid": 2, "type": "rpc", "method": "add_event"}
但是,当我直接卷曲数据时,它正在工作。
curl -u Eve:Welcome666 -k https://myurl.com/zport/dmd/evconsole_router -d '{"action":"EventsRouter", "method":"add_event","data":[{"summary":"test","device":"test","message":"msg","component":"testhost","severity":"5", "evclasskey":"nxlog", "evclass":"/nxlog/perf","monitor":"localhost"}],"type":"rpc","tid":2}' -H "Content-Type:application/json" {"uuid": "1654584c-5f86-489e-a5e7-35d45e462066", "action": "EventsRouter", "result": {"msg": "Created event", "success": true},"tid": 2, "type": "rpc", "method": "add_event"}
【问题讨论】:
-
用
"$data"替换$data? -
试过了,不行! @赛勒斯
-
标准调试建议适用:试试
set -x,看看你的命令扩展成什么——当你说“我的错误是”时,错误是什么?您没有显示来自端点的响应吗?比如,它有效吗?