2012-05-06 10 views
12

मैंने समझने की कोशिश में दो दिन बिताए हैं कि मैं अपने उबंटू ईसी 2 उदाहरण पर काम करने के लिए क्रॉन क्यों नहीं प्राप्त कर सकता हूं। मैंने the documentation पढ़ा है। क्या कोई मदद कर सकता है? मैं चाहता हूं कि एक काम कर रहे cronjob प्राप्त करें।अमेज़ॅन ईसी 2 पर काम करने के लिए क्रॉन नहीं मिल सकता है?

मैं क्रॉन का परीक्षण करने के लिए एक साधारण wget कमांड का उपयोग कर रहा हूं। मैं सत्यापित किया है कि इस कमांड लाइन से मैन्युअल रूप से काम करता है:

/usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/

मेरे crontab फ़ाइल इस तरह दिखता है:

02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/

मैं आदेशों के बीच एक रिक्त स्थान है और मैं एक रिक्त पंक्ति है आदेश के नीचे। मैंने सिस्टम कमांड sudo crontab -e से इस आदेश को निष्पादित करने का भी प्रयास किया है। यह अभी भी काम नहीं करता है।

क्रॉन डेमॉन चल रहा है:

ps aux | grep crond                             
ubuntu 2526 0.0 0.1 8096 928 pts/4 S+ 10:37 0:00 grep crond 

cronjob चलाते हुए प्रतीत होते:

$ crontab -l 
02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ 

किसी को भी किसी भी सलाह या संभव समाधान है?

आपके समय के लिए धन्यवाद।

+0

क्या यह सहायता करता है: http://stackoverflow.com/questions/13204/why-doesnt-my-cron-job-work-properly –

+0

मैं आपके आदेश या कुछ समस्या के साथ मूल्यांकन करने के लिए पहले कुछ आसान कोशिश करूंगा अन्यथा: यानी डालने का प्रयास करें: echo "xxx" >> /var/tmp/myfile.txt और देखें कि यह /var/tmp/myfile.txt – maiklos

+0

@miklos आपके कमांड काम करता है या नहीं। – turtle

उत्तर

3

उपयोगकर्ता को इसे चलाने के लिए निर्दिष्ट करना न भूलें। अपने /etc/cron.d फ़ोल्डर के अंदर एक नई फ़ाइल बनाने का प्रयास करें जिसे आप getnytimes जैसे करना चाहते हैं और उस फ़ाइल की सामग्री केवल हो:

02 * * * * रूट/usr/bin/wget -O/home/ubuntu/बैकअप/testfile http://www.nytimes.com/

+0

ठीक है, धन्यवाद। एक बार जब मैंने इसे बनाया है तो फ़ाइल को 'रन' करने के लिए क्रॉन कैसे कहूं? – turtle

+0

ऐसा लगता है कि क्रॉन को इस फ़ाइल को स्वचालित रूप से यहां एक बार पिकअप करना चाहिए। दुर्भाग्य से, यह अभी भी काम नहीं करता है। – turtle

+1

यदि आप "crontab -e" का उपयोग कर रहे हैं तो उपयोगकर्ता आवश्यक नहीं है - जो vi संपादक खोलता है, जहां आप वर्तमान उपयोगकर्ता के लिए crontab संपादित कर सकते हैं। प्रारूप रूट cromtab के समान है लेकिन उपयोगकर्ता के बिना। और जब मैं vi संपादक पर ZZ (या: wq) दबाता हूं तो crontab चलना शुरू होता है। नमूना क्रॉन लाइन इसे चलाने के परीक्षण के लिए: "* * * * */usr/bin/uptime>/tmp/uptime" – Druvision

19

आपका क्रॉन डिमन नहीं चल रहा है। जब आप ps aux | grep crond चला रहे हैं तो परिणाम दिखा रहा है कि केवल grep कमांड चल रहा है। जब भी आप ps aux | grep blah चलाते हैं, तो इसके बारे में जागरूक रहें।

इस आदेश को चलाकर क्रॉन सेवा की स्थिति की जांच करें।

प्रयास करें:

sudo service crond status 

अतिरिक्त यहाँ जानकारी: http://www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/

+4

ऐसी स्थिति थी जहां मेरा क्रॉन काम नहीं कर रहा था (डेमॉन चल रहा था क्योंकि यह निम्न संदेश को आउटपुट कर रहा था लॉग - 'पीएएम के साथ उपयोगकर्ता को अधिकृत करने में विफल (मॉड्यूल अज्ञात है) ')। इस उत्तर के आधार पर, '/etc/init.d/crond restart' के साथ डिमन को पुनरारंभ किया गया और क्रॉन ने काम करना शुरू कर दिया। –

+0

क्रॉन्ड को पुनरारंभ करने से यह मेरे लिए भी किया गया। यकीन नहीं है कि यह पहली जगह में क्यों काम करना बंद कर दिया। किसी को भी एक विचार है कि कहाँ देखना है? क्रॉन लॉग फ़ाइल कुछ भी दिलचस्प नहीं दिखाती है। –

+1

मुझे पीएएम (मॉड्यूल अज्ञात है) के साथ उपयोगकर्ता को अधिकृत करने के लिए 'FAILED' के वास्तविक समाधान को खोजने में भी रुचि होगी, बल्कि हर बार क्रॉन को पुनरारंभ करना। मैंने यह काफी बार किया है। मैं केवल वास्तव में लॉग्रोटेट के लिए क्रॉन का उपयोग करता हूं, इसलिए यदि ड्राइव पहली चीज़ भरने लगती है तो मैं आम तौर पर पीएएम त्रुटि की जांच करता हूं। मैं इसे हल करना चाहता हूं इसलिए यह अब और नहीं होगा। – Jamiegs

23

क्रोन अमेज़ॅन आधारित लिनक्स सर्वर में किसी अन्य लिनक्स सर्वर की तरह ही चलाया जा सकता है।

  1. एसएसएच के साथ कंसोल में लॉग इन करें।
  2. कमांड लाइन पर crontab -e चलाएं।
  3. आप (, जो डिफ़ॉल्ट रूप से है उपयोगकर्ता कंसोल रूट अनुमति के साथ) वर्तमान उपयोगकर्ता के crontab के vi संपादक के अंदर अब कर रहे हैं
  4. क्रॉन परीक्षण करने के लिए, निम्न पंक्ति जोड़ें: * * * * * /usr/bin/uptime > /tmp/uptime
  5. अब फाइल को सेव करें और बाहर निकलें vi (एएससी दबाएं और दर्ज करें: wq)।
  6. एक या दो मिनट के बाद, जांचें कि अपटाइम फ़ाइल/tmp (cat /tmp/uptime) में बनाई गई थी।
  7. कमांड लाइन पर uptime कमांड टाइप करके वर्तमान सिस्टम अपटाइम के साथ इसकी तुलना करें।

ऊपर दिया गया परिदृश्य अमेज़ॅन लिनक्स ओ/एस के साथ सर्वर पर सफलतापूर्वक काम करता है, लेकिन इसे अन्य लिनक्स बॉक्स पर भी काम करना चाहिए। यह सिस्टम के क्रॉन्टाब को छूए बिना वर्तमान उपयोगकर्ता के क्रोंटैब को संशोधित करता है और क्रॉन्टाब एंट्री के अंदर उपयोगकर्ता की आवश्यकता नहीं होती है, क्योंकि आप अपने उपयोगकर्ता के तहत चीजें चला रहे हैं। आसान, और सुरक्षित!

+1

अतिरिक्त टिप से जुड़े आलेख में भी कहा गया है, फिर चरण # 6, एक बार 'पूंछ-एफ/टीएमपी/अपटाइम' भी कर सकता है ('-F' का अर्थ है कि यह फ़ाइल मौजूद होने से पहले देखना शुरू कर सकता है) – hangtwenty

+0

तकनीकी रूप से - एफ --follow = name --retry जैसा ही है। पूर्व विकल्प का अर्थ यह है कि फाइलों को घुमाए जाने पर यह उसी फ़ाइल नाम के साथ नई फाइलों का पालन कर सकता है, और बाद का मतलब है कि यह फ़ाइल को तब तक खोलने की कोशिश करेगा जब तक कि इसे पाता न हो (यानी आपने जो उल्लेख किया है)। –

0

चल

/usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ 

मुझे एक त्रुटि

/home/ubuntu/backups/testfile: No such file or directory 

इससे आपकी समस्या है देता है? मुझे लगता है कि क्रॉन इस त्रुटि को लिख नहीं है कहीं भी आप इस तरह के लिए stdout stderr अनुप्रेषित और त्रुटि देख सकते हैं:

02 * * * * /usr/bin/wget -O /home/ubuntu/backups/testfile http://www.nytimes.com/ > /home/ubuntu/error.log 2&>1 
0

मेरे मामले में क्रॉन जॉब काम कर रहा था, लेकिन स्क्रिप्ट इसे चलाने में विफल रहा था असफल रहा। विफलता कारण इस तथ्य के कारण था कि मैंने स्क्रिप्ट के अंदर अपनी शामिल पंक्ति में पूर्ण पथ के बजाय सापेक्ष पथ का उपयोग किया था।

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