curl / xargs / influxdb - 从文本文件生成 cli 参数

curl / xargs / influxdb - generate cli argument from text file

我有这样的文件 data.txt

ecgtimeseries value=-0.145 1441114274130
ecgtimeseries value=-0.145 1441114274133
ecgtimeseries value=-0.145 1441114274136
ecgtimeseries value=-0.145 1441114274139
ecgtimeseries value=-0.145 1441114274142

我需要根据data.txt的内容生成这个InfluxDB命令:

curl -i -XPOST 'http://192.168.99.100:8086/write?db=ecg&precision=ms' --data-binary 'ecgtimeseries value=-0.145 1441114274130
ecgtimeseries value=-0.145 1441114274133
ecgtimeseries value=-0.145 1441114274136
ecgtimeseries value=-0.145 1441114274139
ecgtimeseries value=-0.145 1441114274142'

这是我第一次尝试解决方案(xargs):

$ cat data.txt | xargs -0 -t curl -i -XPOST 'http://192.168.99.100:8086/write?db=ecg&precision=ms' --data-binary 
curl -i -XPOST http://192.168.99.100:8086/write?db=ecg&precision=ms --data-binary ecgtimeseries value=-0.145 1441114274130
ecgtimeseries value=-0.145 1441114274133
ecgtimeseries value=-0.145 1441114274136
ecgtimeseries value=-0.145 1441114274139
ecgtimeseries value=-0.145 1441114274142

但是,因为我不知道如何同时生成那些包含数据的撇号,所以该命令没有按预期运行。

有什么想法吗?

为了使用 curl 将文件传递给 InfluxDB,请使用 @<filename> 语法,如 write syntax doc 的 "Write a Batch of Points with curl" 部分所述。

例如: curl -i -XPOST 'http://192.168.99.100:8086/write?db=ecg&precision=ms' --data-binary @data.txt

@<filename> 语法是 curl 的一部分,因此如果您遇到困难,请查看 curl 联机帮助页。请注意,您的文件不能有回车符 returns 0x0D,只有换行符 0x0A。如果你不在 Windows 机器上,你应该没问题。