क्रोन जॉब नहीं चल रही है?


24

मेरे पास एक crontab फ़ाइल है जो इस तरह दिखती है:

* * * * * /home/abliskovs/update/update.sh

हालाँकि जब मैं नौकरी के लिए चलाए गए सबूतों के लिए syslog की जाँच करता हूं, तो ऐसा कुछ भी नहीं है जो यह संकेत दे सकता है कि यह कभी भी चला था। अगर यह चल रहा है तो मैं कैसे जांच सकता हूं?

crontab -l निम्नलिखित आउटपुट:

* * * * * /home/abliskovs/update/update.sh


ठीक है, मैंने ऐसा किया है।
एलेक्स ब्लिसकोवस्की

शायद एक गूंगा सवाल है, लेकिन यह मेरे लिए हुआ इससे पहले कि मैं वैसे भी पूछूंगा। सुनिश्चित करें कि क्रोन डेमन वास्तव में चल रहा है! : पी दूसरा अनुमान अनुमतियाँ हैं, सुनिश्चित करें कि यह क्रोनजॉब चलाने वाले उपयोगकर्ता द्वारा निष्पादन योग्य है।
मटियास अहेनबर्ग

जवाबों:


21

अपनी crontab प्रविष्टि के अंत में >> / / tmp / testlog.log जोड़ें (यदि आप इसे चला रहे हैं या जाँच कर सकते हैं तो एक फ़ाइल पर आउटपुट को रीडायरेक्ट करें, इसके अतिरिक्त 2> और 1 में त्रुटि कंसोल से आउटपुट शामिल होगा)

उदाहरण

0 * * * * / home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

इसके अलावा पालन सुनिश्चित करें:

  • सही तरीके से क्रोनोजर जोड़ें। यदि आपने अपने स्वयं के खाते में crontab -e का उपयोग किया है, तो स्क्रिप्ट आपके उपयोगकर्ता के साथ चलाए जाते हैं (और इस प्रकार crontab प्रविष्टि में एक फ़ील्ड कम है - उपयोगकर्ता इसे चलाने के लिए, जैसा कि ज्ञात है)। यदि आपने /etc/cron.d पर अपने उपर्युक्त को आसानी से कॉपी किया है, तो यह विफल हो जाएगा क्योंकि आपने एक उपयोगकर्ता को निर्दिष्ट नहीं किया था (या इसके बजाय इसे "bash" नाम का कोई उपयोगकर्ता नहीं मिला)।
  • सुनिश्चित करें कि स्क्रिप्ट फ़ाइल निष्पादन योग्य है, अन्यथा यह इसे निष्पादित नहीं करेगा।
  • क्रोन जॉब्स सुडो सेवा रीलोड को पुनः लोड करें या क्रोन सेवा को पुनः आरंभ करेंsudo /etc/init.d/cron restart

फ़ाइल को निष्पादन योग्य कैसे बनाया जाए?

अपनी फ़ाइल को निष्पादन योग्य बनाने के कई तरीके

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh

3

सुनिश्चित करें कि स्क्रिप्ट फ़ाइल निष्पादन योग्य है {chmod 755} अन्यथा यह इसे निष्पादित नहीं करेगा


2
एक फ़ाइल निष्पादन योग्य बनाने के लिए, आप भी चला सकते हैंchmod +x filename
Stefano Palazzo

0

शेल स्क्रिप्ट में update.shसंभवतः त्रुटियां हैं, उदाहरण के लिए कुछ कमांड जिन्हें निष्पादित नहीं किया जा सकता है क्योंकि कमांड नहीं मिल सकता है। इस स्थिति में यह आपके कमांड को पथ के चर में जोड़ने में मदद कर सकता है, या इसे सीधे आपकी कमांड के सामने जोड़ सकता है। यह MAILTO ई-मेल पते को निर्दिष्ट करने में भी मदद करता है, ई-मेल जो क्रोनॉजर्स को निष्पादित करने के परिणामस्वरूप इस पते पर भेजे जाते हैं

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

त्रुटियों के लिए आप स्थानीय मेलबॉक्स mailऔर syslog फ़ाइल भी देख सकते /var/log/syslogहैं। इस संबंधित प्रश्न को भी देखें कि क्रोनॉजर काम क्यों नहीं कर सकता है


0

मैंने एक ही मुद्दे का अनुभव किया है और मेरे लिए इसका कारण यह था कि क्रॉस्टैब नहीं चल रहा था क्योंकि इसके पास इसकी अनुमति नहीं थी। मैंने फ़ाइल बदल दी है और इसे /tmpt/output.log में डाल दिया है

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

अगर यह आपके काम का है, तो मुझे बताएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.