2015-09-06 40 views
0

我有一个看起来像这样的文件data.txt卷曲/ xargs的/ influxdb - 生成文本文件CLI参数

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 

但是,因为我不知道如何生成包含数据的撇号,所以命令的行为并不像预期的那样。

任何想法?

回答

1

要使用curl将文件传递到InfluxDB,请使用write syntax doc的“用curl卷积点”一节中所述的@<filename>语法。

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

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