मैं कर्ल करने के लिए अपटाइम / डीएफ के आउटपुट को कैसे पाइप करूं?


10

मैं cURL का उपयोग करके वेब ऐप के लिए uptimeऔर dfकमांड का आउटपुट भेजना चाहता हूं । मैंने कोशिश की:

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

लेकिन यह डेटा भेजने के लिए प्रतीत नहीं हुआ।

एक कमांड के आउटपुट को POST पैरामीटर के रूप में CURL में भेजने का उचित तरीका क्या है? (या बहुत आसान है अगर wget)


क्या आपने स्टडआउट के लिए पुनर्निर्देशक का उपयोग करने का प्रयास किया था >न कि पाइप का |? साथ ही देख लें xargs
mbrownnyc

देखो यह कर्ल के मैनुअल में वर्णित है: curl.haxx.se/docs/manpage.html#-d या wget के मैनुअल में (नीचे --post-data=string): gnu.org/software/wget/manual/wget.html#dTP- विकल्प
२०'११ मेल

जब आप "एक POST पैरामीटर के रूप में" कहते हैं, तो क्या आपका मतलब यह है कि आपको ऐसा करने की आवश्यकता है जैसे कि आपने एक फॉर्म में अपने नाम के साथ एक फ़ील्ड में टाइप किया है और सबमिट सबमिट किया है, या जैसे कि आपने अपना uptime फ़ाइल में सहेजा है , फिर फ़ाइल को चुनने के लिए फ़ाइल अपलोड फ़ील्ड का उपयोग किया, फिर सबमिट सबमिट किया? ये POSTing डेटा के दो अलग-अलग तरीके हैं। -Tसाथ http[s]://उपयोग करता है डाल, नहीं पोस्ट।
डेरफेक

@DerfK हाँ, मुझे यह पसंद है जैसे कि मैंने अपटाइम परिणामों को एक textarea फ़ील्ड में चिपकाया और यह एक URL पर पोस्ट किया गया था।
21

जवाबों:


29

आप कर्ल में -d विकल्प का उपयोग पाइप से इनपुट स्वीकार करने के लिए @ - तर्क के साथ कर सकते हैं। आपको कुंजी-मूल्य वाले जोड़े स्वयं बनाने की आवश्यकता होगी। इसे इस्तेमाल करे:

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

बैकटिक्स (`) निरूपित करते हैं कि संलग्न कमांड (इस मामले में अपटाइम) को निष्पादित किया जाना चाहिए, और बैकटिक-कोटेड पाठ को निष्पादित कमांड के आउटपुट के साथ बदल दिया गया है।


4
यदि कमांड के आउटपुट में लाइनब्रीक (जैसे df) शामिल हैं, जिसका उपयोग आप करना चाहते हैं curl --data-binary @- URLया कर्ल के नए संस्करणों में कर सकते हैं :uptime | curl --data-urlencode time@- URL
xebeche
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.