सबसे लगातार कारण मैंने क्रॉन को गलत तरीके से बताए गए शेड्यूल में विफल देखा है। यह एक नौकरी के रूप में 11:15 बजे के लिए निर्धारित निर्दिष्ट करने के लिए अभ्यास लेता है 15 23 * * *
बजाय * * 11 15 *
या 11 15 * * *
। आधी रात के बाद नौकरियों के लिए सप्ताह का दिन भी उलझन में है एमएफ 2-6
आधी रात के बाद है, नहीं 1-5
। विशिष्ट तिथियां आमतौर पर एक समस्या हैं क्योंकि हम शायद ही कभी उनका उपयोग करते हैं * * 3 1 *
3 मार्च नहीं है। यदि आप निश्चित नहीं हैं, तो https://crontab.guru/ पर अपने क्रोन शेड्यूल को ऑनलाइन देखें ।
यदि असमर्थित विकल्पों का उपयोग करते हुए विभिन्न प्लेटफार्मों के साथ आपका काम जैसे 2/3
समय विनिर्देशों में विफलताएं भी हो सकती हैं। यह एक बहुत ही उपयोगी विकल्प है, लेकिन सार्वभौमिक रूप से उपलब्ध नहीं है। मैं भी इस तरह की सूची के साथ मुद्दों पर चला गया है 1-5
या 1,3,5
।
अयोग्य रास्तों का उपयोग करने से भी समस्याएँ हुई हैं। डिफ़ॉल्ट पथ आमतौर पर है /bin:/usr/bin
तो केवल मानक कमांड चलेंगे। इन निर्देशिकाओं में आमतौर पर वांछित कमांड नहीं होती है। यह गैर-मानक आदेशों का उपयोग करके स्क्रिप्ट को भी प्रभावित करता है। अन्य पर्यावरण चर भी गायब हो सकते हैं।
मौजूदा क्रॉस्टब को पूरी तरह से तोड़ने से मुझे परेशानी हुई है। मैं अब एक फाइल कॉपी से लोड करता हूं। यह मौजूदा crontab से इस्तेमाल किया जा सकता है crontab -l
अगर यह clobbered हो जाता है। मैं crontab की कॉपी ~ / बिन में रखता हूं। यह पूरी टिप्पणी करता है और पंक्ति के साथ समाप्त होता है # EOF
। इसे प्रतिदिन एक कोंट्राब प्रविष्टि से पुनः लोड किया जाता है जैसे:
#! / Usr / bin / crontab
# इस कोंट्राब को रीलोड करें
#
54 12 * * * $ {HOME} / bin / crontab
ऊपर पुनः लोड कमांड एक निष्पादन योग्य क्रॉस्टैब पर निर्भर करता है जिसमें बैंग रास्ता चल रहा है। कुछ सिस्टम को कमांड में रनिंग क्रैस्टैब की आवश्यकता होती है और फ़ाइल को निर्दिष्ट करता है। यदि निर्देशिका नेटवर्क-साझा है, तो मैं अक्सर crontab.$(hostname)
फ़ाइल के नाम के रूप में उपयोग करता हूं । यह अंततः उन मामलों को सही करेगा जहां गलत सर्वर पर गलत कोंट्राब लोड किया गया है।
फ़ाइल का उपयोग करना एक बैकअप प्रदान करता है कि क्रॉस्टैब क्या होना चाहिए, और अस्थायी संपादन (केवल समय का उपयोग करता है crontab -e
) को स्वचालित रूप से बैकअप करने की अनुमति देता है । ऐसे हेडर उपलब्ध हैं जो शेड्यूलिंग मापदंडों को सही होने में मदद करते हैं। मैंने उन्हें जोड़ा है जब अनुभवहीन उपयोगकर्ता एक क्रॉस्टैब का संपादन करेंगे।
शायद ही कभी, मैं उन कमांडों में भाग लेता हूं जिनके लिए उपयोगकर्ता इनपुट की आवश्यकता होती है। Crontab के तहत ये विफल हो जाते हैं, हालांकि कुछ इनपुट पुनर्निर्देशन के साथ काम करेंगे।
crontab -e
प्रभावित करने के लिए आपको क्रोन के करीब होना चाहिए । उदाहरण के लिए vim का उपयोग करके मैं फ़ाइल को संपादित करता हूं और:w
इसे लिखने के लिए उपयोग करता हूं लेकिन नौकरी छोड़ने तक क्रोन में नहीं जोड़ा जाता है। इसलिए मैं नौकरी नहीं देखूंगा जब तक कि मैं:q
भी नहीं करूंगा ।