如何编写获取近10分钟更新数据的curl命令?已尝试命令未筛选目标数据
解决curl获取最近10分钟告警数据的问题
看起来你之前的curl命令主要卡在shell命令嵌入格式错误和URL参数转义不当这两个点上,导致API没有正确识别from-date参数,所以返回了所有告警数据。我来帮你修正一下:
问题分析
- 第一个命令里,
from-date=date -d'now-10 minutes'只是把字符串date -d'now-10 minutes'直接传给了API,shell并没有执行date命令生成实际时间,API自然无法解析这个值。 - 第二个命令的引号嵌套逻辑混乱,还误用了HTML转义后的
&(shell里直接用&作为参数分隔符即可),同时时间计算的逻辑也不对。
正确的curl命令
curl --request GET "https://localhost:8080/api/alarms?sort-by=lastReceiveTime&from-date=$(date --utc -d 'now-10 minutes' +%FT%T.%3NZ)" -H 'Authorization: Key demo-key'
命令说明
$(date --utc -d 'now-10 minutes' +%FT%T.%3NZ):这部分是shell命令替换,会执行date工具生成10分钟前的UTC时间,格式为ISO8601带毫秒的Zulu时间(比如2024-05-20T14:25:30.123Z),完全匹配API对from-date参数的格式要求。- URL里直接用
&分隔参数,不需要转义成&(那是HTML里的写法),这样API才能正确识别sort-by和from-date两个参数。 - 用双引号包裹整个URL,确保shell能正确解析里面的命令替换部分。
如果你的API对时间格式有其他要求(比如不需要毫秒),可以把%3NZ改成Z,也就是+%FT%TZ,根据实际情况调整即可。
内容的提问来源于stack exchange,提问作者Renu
相关产品推荐
相关产品推荐

