如何将正常运行时间/ df的输出传递给curl?


10

我想使用cURL 将uptimedf命令的输出发送到Web应用程序。我试过了:

uptime | curl http://someurl.com -T -

但这似乎并没有发送数据。

将命令输出作为POST参数发送到cURL的正确方法是什么?(或者wget,如果那要容易得多)


您是否尝试将重定向器用于stdout >而不是管道|?也看看xargs
mbrownnyc 2011年

看起来这是在curl的手册中描述的:curl.haxx.se/docs/manpage.html#-d或wget的手册(在下方--post-data=string):gnu.org/software/wget/manual/wget.html#HTTP-选项
mailq

当您说“作为POST参数”时,是否意味着需要像在表单上的字段(带有名称)中输入正常运行时间并按提交一样,还是要将正常运行时间保存到文件中? ,然后使用文件上传字段选择文件,然后按提交?这是两种不同的数据发布方式。 -Thttp[s]://使用PUT,POST没有。
DerfK's

@DerfK是的,我希望将正常运行时间结果粘贴到textarea字段中,然后将其发布到URL中。
2011年

Answers:


29

您可以在curl中将-d选项与@-参数一起使用,以接受来自管道的输入。您将需要自己构造键-值对。尝试这个:

echo "time=`uptime`" | curl -d @- http://URL

反引号(`)表示应执行封闭的命令(在这种情况下为正常运行时间),并且用引号引起来的文本将替换为已执行命令的输出。


4
如果命令的输出包含换行符(如df),则可能要使用curl --data-binary @- URLcurl或在较新版本的curl中:uptime | curl --data-urlencode time@- URL
xebeche 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.