क्रॉन

From Vigyanwiki
Revision as of 11:38, 10 June 2023 by alpha>Indicwiki (Created page with "{{short description|Job scheduler for Unix-like operating systems}} {{other uses}} {{refimprove|date=November 2011}} {{lowercase}} {{Infobox software | name = cron | screensho...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
cron
Developer(s)AT&T Bell Laboratories
Initial releaseMay 1975; 49 years ago (1975-05)
Written inC
Operating systemUnix and Unix-like, Plan 9, Inferno
TypeJob scheduler

cronकमांड-लाइन यूटिलिटी यूनिक्स जैसे ऑपरेटिंग सिस्टम पर नौकरी अनुसूचक है। जो उपयोगकर्ता सॉफ़्टवेयर वातावरण को सेट अप और रखरखाव करते हैं, वे नौकरियों को शेड्यूल करने के लिए क्रॉन का उपयोग करते हैं[1] (कमांड या खोल स्क्रिप्ट ), जिसे क्रॉन जॉब्स के रूप में भी जाना जाता है,[2][3] समय-समय पर निश्चित समय, तिथियों या अंतराल पर चलने के लिए।[4] यह आमतौर पर सिस्टम रखरखाव या प्रशासन को स्वचालित करता है - हालांकि इसकी सामान्य प्रयोजन प्रकृति इसे इंटरनेट से फाइल डाउनलोड करने और नियमित अंतराल पर ईमेल डाउनलोड करने जैसी चीजों के लिए उपयोगी बनाती है।[5] दोहराए जाने वाले कार्यों को शेड्यूल करने के लिए क्रॉन सबसे उपयुक्त है। संबंधित (कमांड) उपयोगिता का उपयोग करके एक बार के कार्यों को शेड्यूल करना पूरा किया जा सकता है।

क्रॉन का नाम क्रोनोस से उत्पन्न हुआ है, जो समय के लिए ग्रीक शब्द है।[6][better source needed]

सिंहावलोकन

क्रॉन की कार्रवाइयाँ क्रोंटैब (क्रॉन टेबल) फ़ाइल द्वारा संचालित होती हैं, एक कॉन्फ़िगरेशन फ़ाइल जो यूनिक्स खोल कमांड को एक निश्चित समय पर समय-समय पर चलाने के लिए निर्दिष्ट करती है। क्रोंटैब फ़ाइलें वहां संग्रहीत की जाती हैं जहां क्रोन डेमन (कंप्यूटर सॉफ़्टवेयर) के लिए कार्यों की सूची और अन्य निर्देश रखे जाते हैं। उपयोक्ताओं के पास अपनी स्वयं की व्यक्तिगत crontab फ़ाइलें हो सकती हैं और अक्सर एक प्रणाली-व्यापी crontab फ़ाइल होती है (आमतौर पर in /etc या की एक उपनिर्देशिका /etc उदा. /etc/cron.d) जिसे केवल सिस्टम प्रशासक संपादित कर सकते हैं।[note 1] Crontab फ़ाइल की प्रत्येक पंक्ति एक कार्य का प्रतिनिधित्व करती है, और ऐसा दिखाई देती है: <पूर्व>

  1. ┌───────────── मिनट (0 - 59)
  2. │ ┌───────────── घंटा (0 - 23)
  3. │ │ ┌───────────── महीने का दिन (1 - 31)
  4. │ │ │ ┌───────────── महीना (1 - 12)

सप्ताह का दिन (0 - 6) (रविवार से शनिवार);

  1. │ │ │ │ │ 7 भी कुछ प्रणालियों पर रविवार है)
  2. │ │ │ │ │
  3. │ │ │ │ │
  4. * * * * * <निष्पादित करने की आज्ञा>

</पूर्व> प्रत्येक पंक्ति का सिंटैक्स पांच क्षेत्रों से बना क्रॉन एक्सप्रेशन की अपेक्षा करता है जो कमांड को निष्पादित करने के लिए समय का प्रतिनिधित्व करता है, जिसके बाद शेल कमांड को निष्पादित किया जाता है।

जबकि आमतौर पर कार्य निष्पादित किया जाता है जब समय/दिनांक विनिर्देश फ़ील्ड सभी वर्तमान समय और दिनांक से मेल खाते हैं, एक अपवाद है: यदि महीने का दिन (फ़ील्ड 3) और सप्ताह का दिन (फ़ील्ड 5) दोनों प्रतिबंधित हैं (इसमें * शामिल नहीं है) , तो एक या दोनों को वर्तमान दिन से मेल खाना चाहिए।[7] उदाहरण के लिए, यह मानते हुए कि क्रॉन उपयोगकर्ता के लिए डिफ़ॉल्ट शेल बॉर्न शेल अनुरूप है, हर दिन आधी रात (00:01) के एक मिनट बाद अपाचे त्रुटि लॉग को साफ़ करता है:

1 0 * * * printf "" > /var/log/apache/error_log

यह उदाहरण प्रत्येक शनिवार को 23:45 (11:45 अपराह्न) पर Export_dump.sh नामक शेल प्रोग्राम चलाता है।

45 23 * * 6 /home/oracle/scripts/export_dump.sh

नोट: कुछ प्रणालियों पर निर्दिष्ट करना भी संभव है */n समय के हर n-वें अंतराल के लिए चलाने के लिए। साथ ही, एकाधिक विशिष्ट समय अंतराल निर्दिष्ट करना अल्पविराम से किया जा सकता है (उदा., 1,2,3). नीचे हैलो वर्ल्ड को हर पहले, दूसरे और तीसरे घंटे के हर 5वें मिनट में कमांड लाइन पर आउटपुट किया जाएगा (यानी, 01:00, 01:05, 01:10, 03:55 तक)।

*/5 1,2,3 * * * echo hello world

उपयोगकर्ता के लिए कॉन्फ़िगरेशन फ़ाइल को कॉल करके संपादित किया जा सकता है crontab -e इस बात पर ध्यान दिए बिना कि वास्तविक कार्यान्वयन इस फ़ाइल को कहाँ संग्रहीत करता है।

कुछ cron कार्यान्वयन, जैसे कि पॉल विक्सी द्वारा लिखित और कई लिनक्स वितरणों में शामिल लोकप्रिय बर्कले सॉफ्टवेयर वितरण, एक छठा क्षेत्र जोड़ते हैं: एक खाता उपयोगकर्ता नाम जो निर्दिष्ट नौकरी चलाता है (उपयोगकर्ता अस्तित्व और अनुमतियों के अधीन)। यह केवल सिस्टम crontabs में अनुमत है—दूसरों में नहीं, जिनमें से प्रत्येक को कॉन्फ़िगर करने के लिए एकल उपयोगकर्ता को असाइन किया गया है। खाता उपयोक्तानाम के बजाय कभी-कभी छठा क्षेत्र वैकल्पिक रूप से वर्ष के लिए उपयोग किया जाता है- विंडोज़ के लिए एनएनक्रॉन डेमन ऐसा करता है।

क्रॉन का Amazon EventBridge कार्यान्वयन सप्ताह के 0 आधारित दिन का उपयोग नहीं करता है, इसके बजाय यह 1-7 SUN-SAT (0-6 के बजाय) है, साथ ही पहले-सप्ताह के दिन और अंतिम-दिन जैसी अतिरिक्त अभिव्यक्ति सुविधाओं का समर्थन करता है। -महीना।[8]


अमानक पूर्वनिर्धारित समयबद्धन परिभाषाएँ

कुछ क्रॉन कार्यान्वयन[9] निम्नलिखित गैर-मानक मैक्रोज़ का समर्थन करें:

Entry Description Equivalent to
@yearly (or @annually) Run once a year at midnight of 1 January 0 0 1 1 *
@monthly Run once a month at midnight of the first day of the month 0 0 1 * *
@weekly Run once a week at midnight on Sunday morning 0 0 * * 0
@daily (or @midnight) Run once a day at midnight 0 0 * * *
@hourly Run once an hour at the beginning of the hour 0 * * * *
@reboot Run at startup

@reboot डेमन शुरू होने पर एक बार चलने के लिए जॉब को कॉन्फ़िगर करता है। चूंकि क्रोन आमतौर पर कभी भी पुनरारंभ नहीं होता है, यह आमतौर पर बूट होने वाली मशीन से मेल खाता है। इस व्यवहार को क्रॉन के कुछ रूपों में लागू किया जाता है, जैसे कि डेबियन में प्रदान किया गया,[10] ताकि केवल डेमॉन को फिर से शुरू करने से दोबारा न चले @reboot नौकरियां।

@reboot उपयोगी हो सकता है यदि किसी विशेष उपयोगकर्ता के तहत एक सर्वर या डेमॉन शुरू करने की आवश्यकता है, और उपयोगकर्ता के पास प्रोग्राम शुरू करने के लिए init को कॉन्फ़िगर करने की पहुंच नहीं है।

क्रॉन अनुमतियाँ

ये दो फ़ाइलें एक महत्वपूर्ण भूमिका निभाती हैं:

  • /etc/cron.allow - यदि यह फ़ाइल मौजूद है, तो क्रॉन जॉब्स का उपयोग करने की अनुमति देने के लिए इसमें उस उपयोगकर्ता के लिए उपयोगकर्ता का नाम होना चाहिए।
  • /etc/cron.deny - यदि cron.allow फ़ाइल मौजूद नहीं है लेकिन /etc/cron.deny फ़ाइल मौजूद है, तो क्रॉन जॉब्स का उपयोग करने के लिए, उपयोगकर्ताओं को /etc/cron.deny फ़ाइल में सूचीबद्ध नहीं होना चाहिए।

ध्यान दें कि यदि इनमें से कोई भी फाइल मौजूद नहीं है, तो साइट-निर्भर कॉन्फ़िगरेशन पैरामीटर के आधार पर, या तो केवल सुपर उपयोगकर्ता ही क्रॉन जॉब्स का उपयोग कर सकता है, या सभी उपयोगकर्ता क्रॉन जॉब्स का उपयोग कर सकते हैं।

समय क्षेत्र प्रबंधन

अधिकांश क्रॉन कार्यान्वयन सिस्टम टाइम ज़ोन सेटिंग में क्रोंटैब प्रविष्टियों की व्याख्या करते हैं जो क्रॉन डेमन के अंतर्गत चलता है। यह विवाद का एक स्रोत हो सकता है यदि एक बड़ी बहु-उपयोगकर्ता मशीन में कई समय क्षेत्रों में उपयोगकर्ता हैं, खासकर यदि सिस्टम डिफ़ॉल्ट समय क्षेत्र में संभावित भ्रमित डीएसटी शामिल है। इस प्रकार, एक क्रोन कार्यान्वयन एक विशेष मामले के रूप में उपयोगकर्ता crontabs में CRON_TZ=<timezone> रूप की पंक्तियों को पहचान सकता है, जो उस समय क्षेत्र के सापेक्ष बाद की crontab प्रविष्टियों की व्याख्या करता है।[11]


इतिहास

प्रारंभिक संस्करण

संस्करण 7 यूनिक्स में क्रॉन एक प्रणाली सेवा थी (जिसे बाद में डेमन (कंप्यूटिंग) कहा जाता था) से मंगाई गई थी /etc/rc जब ऑपरेटिंग सिस्टम बहु-उपयोगकर्ता मोड में प्रवेश करता है।[12] इसका कलन विधि सीधा था:

  1. पढ़ना /usr/lib/crontab[13]
  2. निर्धारित करें कि क्या कोई कमांड वर्तमान दिनांक और समय पर चलना चाहिए, और यदि ऐसा है, तो उन्हें सुपर उपयोगकर्ता , रूट के रूप में चलाएं।
  3. एक मिनट के लिए सोएं
  4. चरण 1 से दोहराएँ।

क्रॉन का यह संस्करण बुनियादी और मजबूत था लेकिन इसने संसाधनों का भी उपभोग किया चाहे उसे करने के लिए कोई काम मिले या नहीं। 1970 के दशक के अंत में पर्ड्यू विश्वविद्यालय में एक समय-साझा VAX पर सभी 100 उपयोगकर्ताओं के लिए क्रॉन की सेवा का विस्तार करने के लिए एक प्रयोग में पाया गया कि यह सिस्टम पर बहुत अधिक भार डालता है।

बहु-उपयोगकर्ता क्षमता

क्रोन का अगला संस्करण, UNIX सिस्टम V के रिलीज के साथ, केवल सुपरयूजर ही नहीं, यूनिक्स प्रणाली वी सभी उपयोगकर्ताओं के लिए क्रोन की क्षमताओं का विस्तार करने के लिए बनाया गया था। यद्यपि आज यह अधिकांश यूनिक्स और यूनिक्स जैसी प्रणालियों के साथ शक्तिशाली प्रोसेसर और कम संख्या में उपयोगकर्ताओं के साथ तुच्छ लग सकता है, उस समय इसे लगभग 100 उपयोगकर्ता खातों वाले एक-निर्देश प्रति सेकंड सिस्टम पर एक नए दृष्टिकोण की आवश्यकता थी।

ACM के संचार के अगस्त, 1977 के अंक में, W. R. फ्रांटा और कर्ट मैली ने सिमुलेशन इवेंट सेट के लिए एक कुशल डेटा संरचना शीर्षक से एक लेख प्रकाशित किया, जिसमें असतत घटना-संचालित सिमुलेशन सिस्टम के लिए एक इवेंट क्यू डेटा संरचना का वर्णन किया गया है, जो बेहतर प्रदर्शन का प्रदर्शन करता है। आमतौर पर उपयोग की जाने वाली सरल लिंक्ड सूची एल्गोरिदम, गैर-समान समय वितरण दिए जाने पर अच्छा व्यवहार, और एल्गोरिदम का सबसे खराब स्थिति विश्लेषण , n कतार में घटनाओं की संख्या है।

एक पर्ड्यू स्नातक छात्र, रॉबर्ट ब्राउन, ने इस लेख की समीक्षा करते हुए क्रॉन और असतत घटना सिमुलेशन के बीच समानांतर को पहचाना, और प्रयोग के लिए फ्रांटा-माली इवेंट लिस्ट मैनेजर (ईएलएम) का कार्यान्वयन बनाया। असतत घटना सिमुलेटर आभासी समय में चलते हैं, जितनी जल्दी हो सके घटना कतार से घटनाओं को छीलते हैं और अगले कार्यक्रम के निर्धारित समय पर उनकी धारणा को आगे बढ़ाते हैं। वर्चुअल टाइम के बजाय वास्तविक समय में इवेंट सिम्युलेटर चलाने से क्रॉन का एक संस्करण बनाया गया, जो अपना अधिकांश समय सोने में व्यतीत करता है, ईवेंट सूची के शीर्ष पर कार्य को निष्पादित करने के लिए निर्धारित समय की प्रतीक्षा करता है।

निम्नलिखित स्कूल वर्ष ने पर्ड्यू में स्नातक कार्यक्रम में नए छात्रों को लाया, जिसमें कीथ विलियमसन भी शामिल थे, जो कंप्यूटर विज्ञान विभाग में सिस्टम स्टाफ में शामिल हुए थे। वार्म-अप कार्य के रूप में ब्राउन ने उसे एक उत्पादन सेवा में प्रोटोटाइप क्रॉन को पेश करने के लिए कहा, और यह बहु-उपयोगकर्ता क्रॉन 1979 के अंत में पर्ड्यू में उपयोग में आया। क्रॉन के इस संस्करण ने पूरी तरह से क्रॉन को बदल दिया। /etc/cron जो कंप्यूटर विज्ञान विभाग के VAX 11/780 पर चल रहे 32/V पर उपयोग में था।

इस क्रॉन द्वारा प्रयुक्त एल्गोरिथम इस प्रकार है:

  1. स्टार्ट-अप पर, नाम की फ़ाइल देखें .crontab सभी खाताधारकों की गृह निर्देशिका में।
  2. प्रत्येक crontab फ़ाइल के लिए, भविष्य में अगली बार निर्धारित करें कि प्रत्येक कमांड को चलना चाहिए।
  3. उन आदेशों को फ्रांटा-माली घटना सूची में उनके संबंधित समय और उनके पांच क्षेत्र समय विनिर्देशक के साथ रखें।
  4. मुख्य लूप दर्ज करें:
    1. कतार के शीर्ष पर कार्य प्रविष्टि की जांच करें, गणना करें कि भविष्य में इसे कितनी दूर चलना चाहिए।
    2. उस समय के लिए सोएं।
    3. जागने पर और सही समय की पुष्टि करने के बाद, कतार के शीर्ष पर (पृष्ठभूमि में) कार्य को उस उपयोगकर्ता के विशेषाधिकारों के साथ निष्पादित करें जिसने इसे बनाया था।
    4. इस आदेश को चलाने के लिए भविष्य में अगली बार निर्धारित करें और उस समय मूल्य पर ईवेंट सूची पर वापस रखें।

इसके अतिरिक्त, डेमन संशोधित crontab फ़ाइलों को फिर से स्कैन करने के लिए SIGHUP संकेतों का जवाब देता है और संशोधित crontab फ़ाइलों को देखने के लिए घंटे और आधे घंटे पर विशेष वेक अप इवेंट शेड्यूल करता है। कंप्यूटर के समय-समय पर ट्रैकिंग, यूनिक्स अलार्म शेड्यूलिंग, स्पष्ट समय-समय पर परिवर्तन, और प्रक्रिया प्रबंधन की अशुद्धियों से संबंधित बहुत विवरण यहां छोड़े गए हैं, जिनमें से सभी इस क्रॉन में कोड की अधिकांश पंक्तियों के लिए जिम्मेदार हैं। इस क्रॉन ने स्टडआउट और स्टेडर के आउटपुट को भी कैप्चर किया और किसी भी आउटपुट को क्रॉस्टैब मालिक को ई-मेल किया।

इस क्रोन स्केल द्वारा उपभोग किए गए संसाधनों को केवल उस काम की मात्रा के साथ दिया जाता है और समय-समय पर परिवर्तनों की जांच के अपवाद के साथ समय के साथ स्वाभाविक रूप से वृद्धि नहीं होती है।

विलियमसन ने अपनी पढ़ाई पूरी की और कंप्यूटर साइंस में मास्टर ऑफ साइंस के साथ विश्वविद्यालय छोड़ दिया और न्यू जर्सी के मरे हिल में एटी एंड टी बेल लैब्स में शामिल हो गए और इस क्रॉन को अपने साथ ले गए। बेल लैब्स में, उन्होंने और अन्य लोगों ने at (command)|Unix को शामिल किया at क्रॉन में कमांड, crontab फ़ाइलों को उपयोगकर्ताओं की होम निर्देशिकाओं (जो होस्ट-विशिष्ट नहीं थे) से बाहर ले जाया गया और एक सामान्य होस्ट-विशिष्ट स्पूल निर्देशिका में, और आवश्यकता से जोड़ा गया crontab उपयोगकर्ताओं को अपने crontabs को उस स्पूल निर्देशिका में कॉपी करने की अनुमति देने के लिए आदेश।

क्रॉन का यह संस्करण बाद में यूनिक्स प्रणाली वी ी और बीएसडी और उनके डेरिवेटिव, सन माइक्रोसिस्टम्स से सोलारिस (ऑपरेटिंग सिस्टम), सिलिकॉन ग्राफिक्स से IRIX , हेवलेट पैकर्ड से एचपी-यूएक्स, और आईबीएम से आईबीएम एआईएक्स में काफी हद तक अपरिवर्तित दिखाई दिया। तकनीकी रूप से, इन कार्यान्वयनों के लिए मूल लाइसेंस पर्ड्यू रिसर्च फाउंडेशन के पास होना चाहिए जिसने काम को वित्त पोषित किया, लेकिन यह ऐसे समय में हुआ जब ऐसे मामलों पर बहुत कम ध्यान दिया गया।

आधुनिक संस्करण

जीएनयू परियोजना और लिनक्स के आगमन के साथ, नए क्रोन दिखाई दिए। इनमें से सबसे प्रचलित विक्सी क्रोन है, जिसे मूल रूप से 1987 में पॉल विक्सी द्वारा कोडित किया गया था। विक्सी क्रोन का संस्करण 3 1993 के अंत में जारी किया गया था। संस्करण 4.1 का नाम बदलकर इंटरनेट सिस्टम कंसोर्टियम क्रोन कर दिया गया था और जनवरी 2004 में जारी किया गया था। संस्करण 3, कुछ के साथ मामूली बग फिक्स, लिनक्स और बीएसडी के अधिकांश वितरणों में उपयोग किया जाता है।

2007 में, रेड हैट ने मित्र प्रोजेक्ट के लिए विक्सी-क्रॉन 4.1 को फोर्क किया और 2009 में एनाक्रॉन 2.3 को शामिल किया[citation needed].

अन्य लोकप्रिय कार्यान्वयनों में एनाक्रॉन और डीक्रॉन शामिल हैं। हालाँकि, एनाक्रॉन एक स्वतंत्र क्रॉन प्रोग्राम नहीं है। एक और क्रॉन जॉब को इसे कॉल करना चाहिए। dcron DragonFly BSD के संस्थापक मैथ्यू डिलन (कंप्यूटर वैज्ञानिक) द्वारा बनाया गया था, और इसका रखरखाव 2010 में जिम प्रायर द्वारा किया गया था।[14] 2003 में, डेल मेलोर ने मैक्रों को पेश किया,[15] जीएनयू गुइल # गुइल स्कीम में लिखा गया एक क्रॉन संस्करण जो विक्सी क्रॉन के साथ क्रॉस-संगतता प्रदान करता है, साथ ही अधिक लचीलापन भी प्रदान करता है क्योंकि यह मनमाना योजना (प्रोग्रामिंग भाषा) कोड को शेड्यूलिंग गणना और नौकरी की परिभाषा में उपयोग करने की अनुमति देता है। चूँकि mcron डेमन और crontab दोनों फाइलें आमतौर पर स्कीम में लिखी जाती हैं (हालाँकि mcron पारंपरिक Vixie crontabs को भी स्वीकार करता है), उपयोगकर्ता की जॉब क्यू की संचयी स्थिति (कंप्यूटर साइंस) उनके जॉब कोड के लिए उपलब्ध होती है, जिसे iff चलाने के लिए शेड्यूल किया जा सकता है। अन्य नौकरियों के परिणाम कुछ मानदंडों को पूरा करते हैं। मैक्रोन डिफ़ॉल्ट रूप से गुइक्स पैकेज मैनेजर के तहत तैनात किया जाता है, जिसमें मोनाड_(फंक्शनल_प्रोग्रामिंग) के लिए पैकेज मैनेजर के लिए प्रावधान (GNU_Guix#Init_system) शामिल होते हैं, जो mcron crontabs का उत्सर्जन करते हैं, जबकि दोनों यह सुनिश्चित करते हैं कि नौकरी निष्पादन के लिए आवश्यक पैकेज स्थापित हैं और संबंधित क्रॉस्टैब्स सही ढंग से संदर्भित हैं उन्हें।[16] एक webcron नियमित रूप से चलने के लिए रिंग कार्यों को शेड्यूल करता है जहां वेब होस्टिंग सेवा वातावरण में क्रॉन कार्यान्वयन उपलब्ध नहीं हैं।

क्रोन एक्सप्रेशन

एक क्रॉन एक्सप्रेशन एक स्ट्रिंग है जिसमें पांच या छह फ़ील्ड होते हैं जो सफेद स्थान से अलग होते हैं[17] यह समय के एक सेट का प्रतिनिधित्व करता है, आमतौर पर कुछ रूटीन को निष्पादित करने के लिए शेड्यूल के रूप में।

टिप्पणियाँ एक टिप्पणी चिह्न # के साथ शुरू होती हैं, और स्वयं एक पंक्ति में होनी चाहिए।

Field Required Allowed values Allowed special characters Remarks
Minutes Yes 0–59 * , -
Hours Yes 0–23 * , -
Day of month Yes 1–31 * , - ? L W ? L W only in some implementations
Month Yes 1–12 or JAN–DEC * , -
Day of week Yes 0–6 or SUN–SAT * , - ? L # ? L # only in some implementations
Year No 1970–2099 * , - This field is not supported in standard/default implementations.

महीने और सप्ताह के दिन संक्षेप केस-संवेदी नहीं हैं।

सिस्टम crontab फ़ाइल (/etc/crontab) के विशेष मामले में, उपयोगकर्ता फ़ील्ड कमांड से पहले स्वयं को सम्मिलित करता है। यह आम तौर पर 'रूट' पर सेट होता है।

क्रॉन प्रारूप के कुछ उपयोगों में पैटर्न की शुरुआत में एक सेकंड फ़ील्ड भी होता है। उस स्थिति में, क्रोन एक्सप्रेशन एक स्ट्रिंग है जिसमें 6 या 7 फ़ील्ड होते हैं।[18] तारांकन चिह्न ( * )

तारांकन (वाइल्डकार्ड के रूप में भी जाना जाता है) सभी का प्रतिनिधित्व करता है। उदाहरण के लिए, * * * * * का प्रयोग हर मिनट चलेगा। प्रयोग* * * *1 प्रति मिनट केवल सोमवार को ही चलेगा। छह तारक का उपयोग करने का अर्थ है हर सेकेंड जब सेकंड समर्थित होते हैं।
अल्पविराम ( , )
किसी सूची के आइटम को अलग करने के लिए अल्पविराम का उपयोग किया जाता है। उदाहरण के लिए, पांचवें क्षेत्र (सप्ताह के दिन) में MON,WED,FRI का उपयोग करने का मतलब सोमवार, बुधवार और शुक्रवार है।
थोड़ा सा ( - )
डैश रेंज को परिभाषित करता है। उदाहरण के लिए, 2000–2010 प्रत्येक वर्ष 2000 और 2010 के बीच, सम्मिलित रूप से इंगित करता है।
प्रतिशत ( % )
कमांड में प्रतिशत-संकेत (%), जब तक कि बैकस्लैश (\) के साथ बच नहीं जाता है, न्यूलाइन वर्णों में बदल दिया जाता है, और पहले% के बाद के सभी डेटा मानक इनपुट के रूप में कमांड को भेजे जाते हैं।[19]


गैर-मानक वर्ण

निम्नलिखित गैर-मानक वर्ण हैं और केवल कुछ क्रॉन कार्यान्वयनों में मौजूद हैं, जैसे कि Quartz_(scheduler).

L
'L' अंतिम के लिए है। सप्ताह के दिन के क्षेत्र में उपयोग किए जाने पर, यह अंतिम शुक्रवार (जैसे पिछले शुक्रवार) को निर्दिष्ट करने की अनुमति देता है।5L ) दिए गए महीने का। महीने के दिन के क्षेत्र में, यह महीने के आखिरी दिन को निर्दिष्ट करता है।
W
माह-के-दिन के क्षेत्र के लिए 'W' वर्ण की अनुमति है। इस वर्ण का उपयोग दिए गए दिन के निकटतम कार्यदिवस (सोमवार-शुक्रवार) को निर्दिष्ट करने के लिए किया जाता है। उदाहरण के तौर पर अगर15W को महीने के दिन के क्षेत्र के मान के रूप में निर्दिष्ट किया गया है, जिसका अर्थ है: महीने के 15 वें निकटतम सप्ताह का दिन। इसलिए, यदि 15 तारीख को शनिवार है, तो ट्रिगर शुक्रवार 14 तारीख को फायर करता है। यदि 15 तारीख को रविवार है, तो ट्रिगर सोमवार 16 तारीख को प्रज्वलित होता है। यदि 15 तारीख को मंगलवार है, तो यह 15 तारीख को मंगलवार को प्रज्वलित होता है। हालांकि, यदि 1W को महीने के दिन के मान के रूप में निर्दिष्ट किया गया है, और पहला शनिवार है, तो ट्रिगर तीसरे सोमवार को सक्रिय होता है, क्योंकि यह महीने के दिनों की सीमा से 'कूद' नहीं जाता है। 'डब्ल्यू' वर्ण केवल तभी निर्दिष्ट किया जा सकता है जब महीने का दिन एक ही दिन हो, न कि कोई सीमा या दिनों की सूची।

हैश (#): '#' सप्ताह के दिन क्षेत्र के लिए अनुमति है, और उसके बाद एक और पांच के बीच की संख्या होनी चाहिए। यह किसी दिए गए महीने के दूसरे शुक्रवार जैसे निर्माणों को निर्दिष्ट करने की अनुमति देता है।[20] उदाहरण के लिए, सप्ताह के दिन क्षेत्र में 5#3 दर्ज करना हर महीने के तीसरे शुक्रवार से मेल खाता है।

प्रश्न चिह्न (?)
कुछ कार्यान्वयनों में, ' के बजाय प्रयोग किया जाता है*' महीने का दिन या सप्ताह का दिन खाली छोड़ने के लिए। अन्य क्रॉन कार्यान्वयन स्थानापन्न? क्रोन डेमन के स्टार्ट-अप समय के साथ, ताकि ? ? * * * * में अपडेट किया जाएगा 25 8 * * * * अगर क्रॉन सुबह 8:25 बजे शुरू हुआ, और फिर से शुरू होने तक हर दिन इस समय चलेगा।[21]
स्लैश (/)
vixie-cron में, चरण मानों को निर्दिष्ट करने के लिए स्लैश को श्रेणियों के साथ जोड़ा जा सकता है।[9]उदाहरण के लिए, */5 मिनट फ़ील्ड में प्रत्येक 5 मिनट इंगित करता है (आवृत्तियों के बारे में नीचे नोट देखें)। यह अधिक वर्बोज़ पॉज़िक्स फॉर्म के लिए आशुलिपि है 5,10,15,20,25,30,35,40,45,50,55,00. POSIX स्लैश के उपयोग को परिभाषित नहीं करता है; इसका औचित्य (बीएसडी एक्सटेंशन पर टिप्पणी करते हुए) नोट करता है कि परिभाषा सिस्टम वी प्रारूप पर आधारित है लेकिन एक्सटेंशन की संभावना को बाहर नहीं करती है।[7]

ध्यान दें कि आवृत्तियों को सामान्य रूप से व्यक्त नहीं किया जा सकता है; केवल चरण मान जो समान रूप से अपनी सीमा को विभाजित करते हैं, सटीक आवृत्तियों को व्यक्त करते हैं (मिनट और सेकंड के लिए, यानी /2, /3, /4, /5, /6, /10, /12, /15, /20 और /30 क्योंकि 60 उन संख्याओं से समान रूप से विभाज्य है; घंटों के लिए, वह है /2, /3, /4, /6, /8 और /12); अन्य सभी संभावित चरण और अन्य सभी फ़ील्ड समय-इकाई के अंत में असंगत छोटी अवधियों को उत्पन्न करते हैं, इससे पहले कि यह अगले मिनट, दूसरे या दिन पर रीसेट हो जाए; उदाहरण के लिए, प्रवेश करना */5 महीने और लीप वर्ष के आधार पर दिन के लिए कभी-कभी फ़ील्ड 1, 2 या 3 दिनों के बाद निष्पादित होती है; ऐसा इसलिए है क्योंकि क्रॉन स्टेटलेस है (यह अंतिम निष्पादन के समय को याद नहीं करता है और न ही इसके बीच के अंतर को गिनता है और सटीक आवृत्ति गणना के लिए आवश्यक है - इसके बजाय, क्रॉन एक मात्र पैटर्न-मैचर है)।

क्रोंटैब शेड्यूलिंग क्षमता की पेशकश करने वाली कुछ भाषा-विशिष्ट पुस्तकालयों को सख्त श्रेणियों की आवश्यकता नहीं होती है 15-59/XX जब श्रेणियों का उपयोग किया जाता है तो स्लैश के बाईं ओर।[22] ऐसे मामलों में, 15/XX विक्सी-क्रॉन शेड्यूल के समान है 15-59/10 मिनट अनुभाग में। इसी तरह, आप अतिरिक्त निकाल सकते हैं -23 से 0-23/XX, -31 से 1-31/XX, और -12 से 1-12/XX घंटों, दिनों और महीनों के लिए; क्रमश।

H
जेनकिन्स (सॉफ्टवेयर) निरंतर एकीकरण प्रणाली में 'एच' का उपयोग यह इंगित करने के लिए किया जाता है कि एक हैश मान प्रतिस्थापित किया गया है। इस प्रकार एक निश्चित संख्या के बजाय '20 * * * *' का मतलब है कि हर घंटे घंटे के 20 मिनट बाद, 'H * * * *' इंगित करता है कि कार्य हर घंटे एक अनिर्दिष्ट लेकिन अपरिवर्तनीय समय पर प्रत्येक कार्य के लिए किया जाता है। यह उन सभी को एक ही समय में शुरू करने और संसाधनों के लिए प्रतिस्पर्धा करने के बजाय समय के साथ कार्यों को फैलाने की अनुमति देता है।[23]


यह भी देखें

नोट

  1. This is dependent on type of distribution.

संदर्भ

  1. "Automation with Cron job on Centos 8". April 6, 2020.
  2. "Difference between cron, crontab, and cronjob?". Stack Overflow.
  3. "Cron Job: a Comprehensive Guide for Beginners 2020". May 24, 2019.
  4. "Crontab – Quick Reference". Admin's Choice. December 21, 2009.
  5. "नौसिखिया परिचय क्रॉन के लिए". Unixgeeks.org. Retrieved 2013-11-06.
  6. "लिनक्स - क्रॉन और क्रोंटैब".
  7. 7.0 7.1 "crontab", The Open Group Base Specifications Issue 7 — IEEE Std 1003.1, 2013 Edition, The Open Group, 2013, retrieved May 18, 2015
  8. "नियमों के लिए अनुसूची अभिव्यक्तियाँ". Amazon.
  9. 9.0 9.1 "FreeBSD File Formats Manual for CRONTAB(5)". The FreeBSD Project.
  10. "#77563 - cron: crontab(5) lies, '@reboot' is whenever cron restarts, not the system". Debian bug tracking system. Retrieved 2013-11-06.
  11. "crontab(5): tables for driving cron - Linux man page". Linux.die.net. Retrieved 2013-11-06.
  12. Minnie's Home Page http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/etc/rc. Retrieved 2020-09-12. {{cite web}}: Missing or empty |title= (help)
  13. Minnie's Home Page http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/cron.c. Retrieved 2020-09-12. {{cite web}}: Missing or empty |title= (help)
  14. Pryor, Jim (2010-01-05). "क्रॉन". arch-general@archlinux.org (Mailing list). Retrieved 2013-11-06.
  15. Mellor, Dale (2003-06-01). "मैक्रॉन - उपयोगकर्ता आवश्यकताएँ और विश्लेषण". Retrieved 2019-06-11.
  16. "GNU Guix Reference Manual: 8.8.2 Scheduled Job Execution". GNU Guix. 2019-05-19. Retrieved 2019-06-11.
  17. "उबंटू क्रॉन हाउटो". Help.ubuntu.com. 2013-05-04. Retrieved 2013-11-06.
  18. "क्रोनट्रिगर ट्यूटोरियल". Quartz Scheduler Website. Archived from the original on 25 October 2011. Retrieved 24 October 2011.
  19. "मैक्रोन क्रोंटैब संदर्भ". Gnu.org. Retrieved 2013-11-06.
  20. "Oracle® Role Manager Integration Guide". Docs.oracle.com. Retrieved 2013-11-06.
  21. "क्रॉन प्रारूप". nnBackup. Retrieved 2014-05-27.
  22. "पायथन क्रोंटैब". GitHub. Retrieved 2023-04-05.
  23. "टाइमर ट्रिगर सिंटेक्स". jenkins.com. Retrieved 2018-02-16.


बाहरी संबंध