2009-08-24 13 views
14

तो मेरे पास एक स्क्रिप्ट है जिसे मैंने इको स्टेटमेंट्स के समूह के साथ डीबग किया है। यह क्रॉन द्वारा मेरे सर्वर पर हर 3 मिनट चलाया जाता है, और मैं कभी-कभी वहां गूंज बयान छोड़ देता हूं। वे एक ब्राउज़र नहीं जा रहे हैं, वे बस जा रहे हैं ... कहीं भी?यदि मैं एक कथन गूंजता हूं और कोई भी इसे सुनता नहीं है, तो क्या यह कभी गूंजता है? (PHP क्रॉन जॉब प्रश्न)

यह एक अस्पष्ट सवाल है जो मुझे लगता है, लेकिन क्या होता है जब कोई अंत उपयोगकर्ता या इको स्टेटमेंट के लिए आउटपुट नहीं होता है? क्या यह स्मृति को गले लगाता है? क्या यह अभी गायब हो गया है? मैं इसे समझने में किसी भी मदद की सराहना करता हूं।

+2

शीर्षक कविता के लिए उपरोक्त। :) (और पारस्परिक हित, लेकिन इसे कभी याद नहीं करें।) – agorenst

+0

हां, मैं एगोर से सहमत हूं, अच्छा शीर्षक! – DGM

+1

आपको शीर्षक कविता के लिए अंक मिलते हैं? !! खैर, हाँ, मैंने देखा है कि यह कुछ बेहतर है। – pavium

उत्तर

10

जवाब है हां, और आउटपुट मेल है (यदि आप लिनक्स का उपयोग कर रहे जब से तुम कहा क्रॉन और अनुसूचित नहीं काम मानते हुए): आप के माध्यम से एक फाइल करने के लिए अपनी स्क्रिप्ट के उत्पादन में लिख सकते हैं क्रॉन कार्य चला रहे खाते में। आप इस उदाहरण क्रॉन फ़ाइल की तरह एक "mailto = ACCOUNTNAME" विकल्प सेट, द्वारा crontab फ़ाइल में बदल सकते हैं:

MAILTO=root 

# run a script every hour 
01 * * * * root run-parts /etc/cron.hourly 
#etc. 

ऊपर क्रॉन कार्य से कोई उत्पादन जड़ उपयोगकर्ता के लिए भेज दिया जाएगा। के रूप में माइक बी पोस्ट, आप भी बस उत्पादन कहीं और काम लाइन पर > ऑपरेटर का उपयोग अनुप्रेषित कर सकते हैं:

जिसमें
01 * * * * php testscript.php > /var/log/logfile.log 

मामले क्रॉन नहीं देखा है और एक ईमेल भेज नहीं है।

नीचे की रेखा यह है कि यदि आप किसी PHP स्क्रिप्ट में echo कथन छोड़ देते हैं और इसे क्रॉन नौकरी के रूप में सेट करते हैं, तो आप क्रॉन डिमन से ईमेल प्राप्त करना शुरू कर देंगे।

+3

यदि आप आउटपुट रखना नहीं चाहते हैं तो आप '/ dev/null' पर रीडायरेक्ट कर सकते हैं। यह अभी भी मुद्रित हो जाएगा, लेकिन इसे तुरंत त्याग दिया जाएगा, जिससे कोई स्मृति नहीं ले जायेगी। – troelskn

+0

@troelskn - निश्चित रूप से एक लोकप्रिय रणनीति। – zombat

+2

इसलिए मैंने पाया कि मैं उस सर्वर पर अपने डिस्कस्पेस कोटा का 75% उपयोग कर रहा था, और देखा और देखा .... और maildir निर्देशिका में 3 गीगा मेल मिला। तो यह तूम गए वहाँ! –

9

हां वे आउटपुट किए गए हैं लेकिन विशेष रूप से में कोई भी नहीं (zombat's answer देखें, यह क्रोंटस्क के मालिक को मेल किया गया है)।

php myscript.php > /var/log/cronlog.log 

+0

और क्या वे स्मृति में या कुछ भी बुरा है? या कुछ echos कोई बड़ा सौदा टिप्पणी करने के लिए भूल रहा है? –

+1

@Alex: वे STDOUT बफर में जाते हैं, इसलिए हाँ, उन्हें स्मृति में रखा जाता है। लेकिन यह समय-समय पर फिसल गया है और अधिकतम आकार है। मेम रिसाव आपके गूंज बयान नहीं होगा। – Eric

+0

जैसा कि ज़ोंबैट ने कहा है, आउटपुट क्रॉन नौकरी के मालिक को मेल किया जाता है। यह आमतौर पर एक सिस्टम खाता होता है, और इस प्रकार कभी-कभी यह पता लगाना मुश्किल होता है कि आपके पास वर्चुअल पते हैं और ऐसे में। – DGM

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