Çalışma süresi / df'nin çıkışını kıvırmak için nasıl bağlarım?


10

CURL kullanarak bir web uygulamasının çıktısını uptimeve dfkomutlarını göndermek istiyorum . Denedim:

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

Ama bu verileri göndermiyor gibiydi.

Bir komutun çıktısını cURL'a POST parametresi olarak göndermenin doğru yolu nedir? (veya çok daha kolaysa uyandır)


Yönlendiriciyi >boru değil stdout için kullanmaya çalıştınız |mı? Ayrıca bir göz atın xargs.
mbrownnyc

Bunun curl kılavuzunda açıklandığı gibi: curl.haxx.se/docs/manpage.html#-d Veya wget kılavuzunda (altında --post-data=string): gnu.org/software/wget/manual/wget.html#HTTP- Seçenekler
mailq

"POST parametresi olarak" dediğinizde, formdaki bir alana (adıyla) çalışma sürenizi yazmış ve gönder'e basmış gibi veya çalışma sürenizi bir dosyaya kaydetmiş gibi mi demek istediniz? , daha sonra dosyayı seçmek için bir dosya yükleme alanı kullandıktan sonra gönder? Bunlar verileri POST etmenin iki farklı yoludur. -Tile http[s]://kullanımlar, POST değil PUT.
DerfK

@DerfK Evet, çalışma zamanı sonuçlarını bir textarea alanına yapıştırdım ve bir URL'ye GÖNDERİLDİ.
Callmeed

Yanıtlar:


29

Bir borudan girişi kabul etmek için curl içindeki -d seçeneğini @ - argümanıyla kullanabilirsiniz. Anahtar / değer çiftlerini kendiniz oluşturmanız gerekir. Bunu dene:

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

Ters çentikler (`), ekli komutun (bu durumda çalışma zamanı) yürütülmesi gerektiğini ve ters tırnak işaretli metnin yerine yürütülen komutun çıktısı ile değiştirildiğini belirtir.


4
Komutun çıktısı satır aralıkları (gibi df) içeriyorsa curl --data-binary @- URLveya uptime | curl --data-urlencode time@- URL
curl'un
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.