Jak przesłać dane wyjściowe uptime / df do zwijania?


10

Chcę wysłać dane wyjściowe uptimei dfpolecenia do aplikacji internetowej za pomocą cURL. Próbowałem:

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

Ale to nie wydawało się przesyłać danych.

Jaki jest właściwy sposób wysłania wyniku polecenia do cURL jako parametru POST? (lub wget jeśli to o wiele łatwiejsze)


próbowałeś użyć readresatora dla standardowego wyjścia, >a nie potoku |? Zobacz także xargs.
mbrownnyc

Spójrz na to opisane jest w instrukcji curl: curl.haxx.se/docs/manpage.html#-d Lub w instrukcji wget (under --post-data=string): gnu.org/software/wget/manual/wget.html#HTTP- Opcje
mailq

Kiedy mówisz „jako parametr POST”, masz na myśli, że potrzebujesz, aby było tak, jakbyś wpisał swój czas działania w polu (z nazwą) w formularzu i nacisnął przycisk przesyłania lub tak, jakbyś zapisał czas działania w pliku , a następnie użył pola przesyłania pliku, aby wybrać plik, a następnie nacisnął przycisk Prześlij? Są to dwa różne sposoby wysyłania danych POST. -Tz http[s]://zastosowaniem PUT, a nie POST.
DerfK,

@DerfK Tak, chciałbym, żeby to było tak, jakbym wkleił wyniki uptime do pola tekstowego i był on wysłany do adresu URL.
Callmeed,

Odpowiedzi:


29

Możesz użyć opcji -d w curl z argumentem @ -, aby zaakceptować dane wejściowe z potoku. Musisz sam zbudować pary klucz-wartość. Spróbuj tego:

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

Znaki wsteczne (`) oznaczają, że załączone polecenie (w tym przypadku czas działania) powinno zostać wykonane, a cytowany tekst zwrotny zastąpiony danymi wyjściowymi wykonanego polecenia.


4
Jeśli dane wyjściowe polecenia zawierają dfcurl --data-binary @- URLuptime | curl --data-urlencode time@- URL
podziały wierszy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.