Как мне передать вывод uptime / df в curl?

10

Я хочу , чтобы отправить вывод uptimeи dfкоманды на веб - приложение , с помощью CURL. Я старался:

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

Но это не похоже на отправку данных.

Как правильно отправить вывод команды в cURL в качестве параметра POST? (или Wget, если это намного проще)

Callmeed
источник
Вы пытались использовать перенаправитель для stdout, а >не трубы |? Также взгляните на xargs.
mbrownnyc
Посмотрите, это описано в руководстве по curl: curl.haxx.se/docs/manpage.html#-d или в руководстве по wget (в разделе --post-data=string): gnu.org/software/wget/manual/wget.html#HTTP-. Опции
mailq
Когда вы говорите «в качестве параметра POST», вы имеете в виду, что вам нужно, чтобы он был таким, как если бы вы вводили время безотказной работы в поле (с именем) в форме и нажимали кнопку «Отправить», или как если бы вы сохранили время безотказной работы в файл , затем использовал поле загрузки файла, чтобы выбрать файл, а затем нажмите отправить? Это два разных способа размещения данных. -Tс http[s]://использованием PUT, а не POST.
DerfK
@DerfK Да, мне бы хотелось, чтобы результаты в режиме безотказной работы вставлялись в поле textarea, и оно помещалось в URL.
Callmeed

Ответы:

29

Вы можете использовать опцию -d в curl с аргументом @ -, чтобы принять ввод из канала. Вам нужно будет создать пары ключ-значение самостоятельно. Попробуй это:

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

Буквы (`) означают, что вложенная команда (в данном случае время безотказной работы) должна быть выполнена, а текст в кавычках заменен выводом выполненной команды.

saffsd
источник
4
Если выходные данные команды содержат dfcurl --data-binary @- URLuptime | curl --data-urlencode time@- URL
переносы строк