Come convoglio l'output di uptime / df per arricciare?


10

Voglio inviare l'output uptimee i dfcomandi a un'app Web utilizzando cURL. Provai:

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

Ma questo non sembrava inviare i dati.

Qual è il modo corretto di inviare l'output di un comando a cURL come parametro POST? (o wget se è molto più facile)


hai tentato di utilizzare il redirector per stdout >non una pipe |? Dai anche un'occhiata a xargs.
mbrownnyc,

Guarda questo è descritto nel manuale di curl: curl.haxx.se/docs/manpage.html#-d O nel manuale di wget (sotto --post-data=string): gnu.org/software/wget/manual/wget.html#HTTP- Opzioni
mailq,

Quando dici "come parametro POST", vuoi dire che è necessario che tu abbia digitato il tempo di attività in un campo (con un nome) su un modulo e premuto invia, o come se hai salvato il tempo di attività in un file , quindi utilizzato un campo di caricamento file per selezionare il file, quindi premere Invia? Questi sono due modi diversi di pubblicare i dati. -Tcon http[s]://utilizza PUT, non POST.
DerfK,

@DerfK Sì, vorrei che fosse come se avessi incollato i risultati di uptime in un campo textarea ed è stato POSTATO su un URL.
Callmeed,

Risposte:


29

È possibile utilizzare l'opzione -d in curl con un argomento @ - per accettare l'input da una pipe. Dovrai costruire tu stesso le coppie chiave-valore. Prova questo:

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

I backtick (`) indicano che il comando racchiuso (in questo caso uptime) deve essere eseguito e il testo tra virgolette deve essere sostituito con l'output del comando eseguito.


4
Se l'output del comando include interruzioni di riga (come df) che potresti voler utilizzare curl --data-binary @- URLo nelle versioni più recenti di arricciatura:uptime | curl --data-urlencode time@- URL
xebeche
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.