2012-03-13 7 views
101

मैं एक नए वेब सर्वर पर http अनुरोध करने के लिए Wget का उपयोग कर रहा हूं। मैं MySQL कैश को गर्म करने के लिए ऐसा कर रहा हूं। मैं उनकी सेवा के बाद फ़ाइलों को सहेजना नहीं चाहता हूं।मैं फ़ाइल का अनुरोध कैसे करूं लेकिन इसे Wget से सहेजूं?

wget -nv -do-not-save-file $url 

मैं wget साथ -do-not-save-file की तरह कुछ कर सकता हूँ?

+3

यह बेहतर है सुपर उपयोगकर्ता या यूनिक्स.एसई के लिए सवाल एक डेवलपर के रूप में –

+2

मैं wget के साथ एक सर्वर का परीक्षण करना चाहता हूं और इस सवाल से गंभीरता से विषय पर है। जैसा कि विषय के सबसे अच्छे उत्तर में 142 सकारात्मक वोट मिले, इसलिए इस प्रश्न को –

उत्तर

191

उपयोग q शांत मोड के लिए झंडा, और उत्पादन के लिए wget बता O- (अपरकेस ओ) के साथ stdout और आउटपुट त्यागने के लिए /dev/null पर रीडायरेक्ट करने:

wget -qO- $url &> /dev/null

> एक फाइल करने के लिए आवेदन निर्गम (पुनर्निर्देश)। अगर > एम्पर्सेंड से पहले है, तो शेल > के दायीं ओर सभी आउटपुट (त्रुटि और सामान्य) को रीडायरेक्ट करता है। यदि आप एम्पर्सेंड निर्दिष्ट नहीं करते हैं, तो केवल सामान्य आउटपुट रीडायरेक्ट किया जाता है।

./app &> file # redirect error and standard output to file 
./app > file # redirect standard output to file 
./app 2> file # redirect error output to file 

यदि फ़ाइल /dev/null है तो सभी को त्याग दिया जाता है।

यह रूप में अच्छी तरह से काम करता है, और सरल:

wget -O/dev/null -q $url 
+0

पर पुन: सक्षम किया जाना चाहिए इस आदेश में एम्परसेंड और उससे अधिक क्या करना है? क्या आप आउटपुट को/dev/null पर पाइप कर सकते हैं ... wget -qO- |/dev/null ...? –

+0

@ टी। ब्रायन जोन्स, – perreal

+0

अपडेट किया गया, ओह, मैंने कोशिश की और यह मेरे लिए काम नहीं किया। जो मैंने पाया, उससे एम्परसेंड प्रतीक से अधिक के बाद आना चाहिए। –

39

Curl करता है कि किसी भी पैरामीटर या झंडे के बिना डिफ़ॉल्ट रूप से, मैं अपने उद्देश्यों के लिए उपयोग होगा:

curl $url > /dev/null 2>&1 

कर्ल धाराओं के बारे में अधिक है और wget this comparison के आधार पर साइटों की प्रतिलिपि बनाने के बारे में अधिक है।

wget -O- http://yourdomain.com > /dev/null 

या::

+1

ठंडा आप समझते हैं कि 2> और 1 का क्या अर्थ है? मुझे मिलता है> लेकिन अंत क्यों? – apscience

+2

@gladoscc पहले '>/dev/null' रीडायरेक्ट [std out] (http://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29)/dev/null ('>/dev/null' '1>/dev/null' के लिए छोटा है), दूसरा रीडायरेक्ट [std err] (http://en.wikipedia.org/wiki/Standard_streams#Standard_error_.28stderr.29) std out करने के लिए। –

+0

@apscience बस जोड़ने के लिए। Std out के लिए फ़ाइल डिस्क्रिप्टर 1 है। जब आप रीडायरेक्ट से डिस्क्रिप्टर को छोड़ देते हैं तो शैल बाहर निकलते हैं। इसलिए '> foo' को '1> foo' के रूप में व्याख्या किया गया है। जब '&' एक रीडायरेक्ट का पालन करता है, तो यह बाद में फ़ाइल फ़ाइल को पूर्व फ़ाइल डिस्क्रिप्टर को _same output_ पर रीडायरेक्ट करने के लिए निर्देश देता है। इस मामले में, '2> और 1' फ़ाइल डिस्क्रिप्टर 2 (std out) के रूप में उसी स्थान पर फ़ाइल डिस्क्रिप्टर 2 (std err) को रीडायरेक्ट करता है। चूंकि std out पहले ही/dev/null पर रीडायरेक्ट किया गया है, इसलिए std त्रुटि को भी पुनर्निर्देशित किया जाएगा। आप यह भी लिख सकते हैं: '1>/dev/null 2>/dev/null' या' 2>/dev/null> और 2'। – ktbiz

30

आप -O- (अपरकेस ओ) (/dev/null/dev/stderr/dev/stdout की तरह भी विशेष फ़ाइलों)

wget -O- http://yourdomain.com 

या stdin करने के लिए या एक फाइल करने के लिए सामग्री रीडायरेक्ट करने के लिए उपयोग कर सकते हैं (अंतिम आदेश के समान परिणाम)

wget -O/dev/null http://yourdomain.com 
+0

Thx, विंडोज़ पर भी काम करता है। – Pyjong

+0

धन्यवाद, प्रत्यक्ष-से-/dev/null स्मार्ट था, और इस प्रकार सही उत्तर: मुझे "आंकड़े आउटपुट" चाहिए, लेकिन सामग्री नहीं। – stolsvik

संबंधित मुद्दे