क्रॉन: Difference between revisions

From Vigyanwiki
Line 12: Line 12:
| genre = [[Job scheduler]]
| genre = [[Job scheduler]]
}}
}}
'''क्रॉन''' कमांड-लाइन यूटिलिटी एक जॉब [[ नौकरी अनुसूचक |अनुसूचक]] है, जो यूनिक्स-प्रकार के [[ऑपरेटिंग सिस्टम]] पर उपयोग होता है। सॉफ़्टवेयर वातावरण को सेट और बनाए रखने वाले उपयोगकर्ताओं को क्रॉन का उपयोग जॉब्स को निर्धारित समय,दिनांक या अंतराल पर नियोजित करने के लिए करते हैं, जिन्हें क्रॉन जॉब्स के रूप में भी जाना जाता है,<ref>{{Cite web|url=https://stackoverflow.com/questions/21615673/difference-between-cron-crontab-and-cronjob|title=Difference between cron, crontab, and cronjob?|website=Stack Overflow}}</ref><ref>{{Cite web|url=https://www.hostinger.com/tutorials/cron-job|title=Cron Job: a Comprehensive Guide for Beginners 2020|date=May 24, 2019}}</ref>  
'''क्रॉन''' आदेश -लाइन यूटिलिटी एक जॉब [[ नौकरी अनुसूचक |अनुसूचक]] है, जो यूनिक्स-प्रकार के [[ऑपरेटिंग सिस्टम]] पर उपयोग होता है। सॉफ़्टवेयर वातावरण को सेट और बनाए रखने वाले उपयोगकर्ताओं को क्रॉन का उपयोग जॉब्स को निर्धारित समय,दिनांक या अंतराल पर नियोजित करने के लिए करते हैं, जिन्हें क्रॉन जॉब्स के रूप में भी जाना जाता है,<ref>{{Cite web|url=https://stackoverflow.com/questions/21615673/difference-between-cron-crontab-and-cronjob|title=Difference between cron, crontab, and cronjob?|website=Stack Overflow}}</ref><ref>{{Cite web|url=https://www.hostinger.com/tutorials/cron-job|title=Cron Job: a Comprehensive Guide for Beginners 2020|date=May 24, 2019}}</ref>  


क्रॉन सामान्यतः सिस्टम रखरखाव या प्रशासन को स्वचालित करता है, यद्यपि इसकी सामान्यता से उपयोगीता के कारण इंटरनेट से फ़ाइलें डाउनलोड करने और नियमित अंतराल पर ईमेल डाउनलोड करने जैसी चीज़ों के लिए भी उपयोगी होता है।
क्रॉन सामान्यतः सिस्टम रखरखाव या प्रशासन को स्वचालित करता है, यद्यपि इसकी सामान्यता से उपयोगीता के कारण इंटरनेट से फ़ाइलें डाउनलोड करने और नियमित अंतराल पर ईमेल डाउनलोड करने जैसी चीज़ों के लिए भी उपयोगी होता है।
Line 21: Line 21:


== संक्षिप्त विवरण ==
== संक्षिप्त विवरण ==
क्रॉन की क्रियाएं एक "क्रॉनटैब" फ़ाइल द्वारा नियंत्रित होती हैं, जो एक निर्धारित अनुसूची पर नियमित रूप से चलाने के लिए शेल कमांड निर्दिष्ट करने वाली एक संरूपण फ़ाइल होती है। क्रॉनटैब फ़ाइलें वहाँ संग्रहीत होती हैं जहां क्रॉन डीमन को नियोजित कार्यों और अन्य निर्देशों की सूचियाँ रखी जाती हैं।
क्रॉन की क्रियाएं एक "क्रॉनटैब" फ़ाइल द्वारा नियंत्रित होती हैं, जो एक निर्धारित अनुसूची पर नियमित रूप से चलाने के लिए शेल आदेश  निर्दिष्ट करने वाली एक संरूपण फ़ाइल होती है। क्रॉनटैब फ़ाइलें वहाँ संग्रहीत होती हैं जहां क्रॉन डीमन को नियोजित कार्यों और अन्य निर्देशों की सूचियाँ रखी जाती हैं।


उपयोगकर्ताओं के पास अपनी अलग अलग क्रॉनटैब फ़ाइलें हो सकती हैं और आमतौर पर एक सिस्टम-व्यापी क्रॉनटैब फ़ाइल होती है, जिसे केवल प्रणाली प्रशासक संपादित कर सकते हैं।
उपयोगकर्ताओं के पास अपनी अलग अलग क्रॉनटैब फ़ाइलें हो सकती हैं और आमतौर पर एक सिस्टम-व्यापी क्रॉनटैब फ़ाइल होती है, जिसे केवल प्रणाली प्रशासक संपादित कर सकते हैं।
Line 35: Line 35:
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <निष्पादित करने की आज्ञा>
# * * * * * <निष्पादित करने की आज्ञा>
प्रत्येक पंक्ति का सिंटैक्स पांच क्षेत्रों से बना क्रॉन एक्सप्रेशन की अपेक्षा करता है जो कमांड को निष्पादित करने के लिए समय का प्रतिनिधित्व करता है, जिसके बाद शेल कमांड को निष्पादित किया जाता है।
प्रत्येक पंक्ति का सिंटैक्स पांच क्षेत्रों से बना क्रॉन एक्सप्रेशन की अपेक्षा करता है जो आदेश  को निष्पादित करने के लिए समय का प्रतिनिधित्व करता है, जिसके बाद शेल आदेश  को निष्पादित किया जाता है।


सामान्यतः, कार्य को निष्पादित किया जाता है जब समय/दिनांक निर्धारण क्षेत्रों की सभी मान समय/दिनांक के समान होते हैं। यद्यपि, एक अपवाद है: अगर "माह का दिन" और "सप्ताह का दिन"  दोनों ही सीमित होते हैं तो एक या दोनों को समय/दिनांक के समान होना चाहिए। उदाहरण के रूप में, निम्नलिखित क्रॉन व्यवस्था द्वारा प्रतिदिन बजे 12:01 बजे अपाचे त्रुटि लॉग को साफ़ करेगी, यहां तक कि मान लिया जाए कि क्रॉन उपयोगकर्ता के लिए डिफ़ॉल्ट शेल बोर्न शेल के अनुरूप है:
सामान्यतः, कार्य को निष्पादित किया जाता है जब समय/दिनांक निर्धारण क्षेत्रों की सभी मान समय/दिनांक के समान होते हैं। यद्यपि, एक अपवाद है: अगर "माह का दिन" और "सप्ताह का दिन"  दोनों ही सीमित होते हैं तो एक या दोनों को समय/दिनांक के समान होना चाहिए। उदाहरण के रूप में, निम्नलिखित क्रॉन व्यवस्था द्वारा प्रतिदिन बजे 12:01 बजे अपाचे त्रुटि लॉग को साफ़ करेगी, यहां तक कि मान लिया जाए कि क्रॉन उपयोगकर्ता के लिए डिफ़ॉल्ट शेल बोर्न शेल के अनुरूप है:
Line 46: Line 46:
45 23 * * 6 /home/oracle/scripts/export_dump.sh
45 23 * * 6 /home/oracle/scripts/export_dump.sh
</syntaxhighlight>
</syntaxhighlight>
ध्यान दें: कुछ सिस्टमों पर समय के हर n-वें अंतराल के लिए */n निर्दिष्ट करना भी संभव होता है। साथ ही, कमों में  उदाहरण के लिए, 1,2,3 एकाधिक विशिष्ट समय अंतराल भी निर्दिष्ट किए जा सकते हैं। निम्नलिखित प्रतिमान के अनुसार, हर पहले, दूसरे और तीसरे घंटे के हर 5 मिनट पर अर्थात  01:00, 01:05, 01:10 से लेकर 03:55 तक कमांड लाइन पर "हैलो वर्ल्ड" का आउटपुट होगा। <syntaxhighlight lang="bash">
ध्यान दें: कुछ प्रणालियों  पर समय के हर n-वें अंतराल के लिए */n निर्दिष्ट करना भी संभव होता है। साथ ही, कमों में  उदाहरण के लिए, 1,2,3 एकाधिक विशिष्ट समय अंतराल भी निर्दिष्ट किए जा सकते हैं। निम्नलिखित प्रतिमान के अनुसार, हर पहले, दूसरे और तीसरे घंटे के हर 5 मिनट पर अर्थात  01:00, 01:05, 01:10 से लेकर 03:55 तक आदेश  लाइन पर "हैलो वर्ल्ड" का आउटपुट होगा। <syntaxhighlight lang="bash">
*/5 1,2,3 * * * echo hello world
*/5 1,2,3 * * * echo hello world
</syntaxhighlight>
</syntaxhighlight>
Line 112: Line 112:
[[संस्करण 7 यूनिक्स]] में क्रॉन एक प्रणाली सेवा थी (जिसे बाद में [[डेमन (कंप्यूटिंग)|डेमन]] कहा जाता था) से मंगाई गई थी <code>/etc/rc</code> जब ऑपरेटिंग सिस्टम बहु-उपयोगकर्ता मोड में प्रवेश करता है।<ref>{{cite web | website=Minnie's Home Page | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/etc/rc | access-date=2020-09-12}}</ref> इसका [[कलन विधि]] सीधा था:
[[संस्करण 7 यूनिक्स]] में क्रॉन एक प्रणाली सेवा थी (जिसे बाद में [[डेमन (कंप्यूटिंग)|डेमन]] कहा जाता था) से मंगाई गई थी <code>/etc/rc</code> जब ऑपरेटिंग सिस्टम बहु-उपयोगकर्ता मोड में प्रवेश करता है।<ref>{{cite web | website=Minnie's Home Page | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/etc/rc | access-date=2020-09-12}}</ref> इसका [[कलन विधि]] सीधा था:
# पढ़ना <code>/usr/lib/क्रॉनटैब</code> <ref>{{cite web | website=Minnie's Home Page | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/cron.c | access-date=2020-09-12}}</ref>
# पढ़ना <code>/usr/lib/क्रॉनटैब</code> <ref>{{cite web | website=Minnie's Home Page | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/cron.c | access-date=2020-09-12}}</ref>
# निर्धारित करें कि क्या कोई कमांड वर्तमान दिनांक और समय पर चलना चाहिए, और यदि ऐसा है, तो उन्हें [[ सुपर उपयोगकर्ता | सुपर उपयोगकर्ता]], रूट के रूप में चलाएं।
# निर्धारित करें कि क्या कोई आदेश  वर्तमान दिनांक और समय पर चलना चाहिए, और यदि ऐसा है, तो उन्हें [[ सुपर उपयोगकर्ता | सुपर उपयोगकर्ता]], रूट के रूप में चलाएं।
#एक मिनट के लिए सो जाएँ।
#एक मिनट के लिए सो जाएँ।
# चरण 1 से पुनः प्रारंभ करें।
# चरण 1 से पुनः प्रारंभ करें।
Line 120: Line 120:
=== बहु-उपयोगकर्ता क्षमता ===
=== बहु-उपयोगकर्ता क्षमता ===


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


ACM के संचार के अगस्त, 1977 के अंक में, W. R. फ्रांटा और कर्ट मैली ने सिमुलेशन इवेंट सेट के लिए एक कुशल डेटा संरचना शीर्षक से एक लेख प्रकाशित किया, जिसमें असतत घटना-संचालित सिमुलेशन सिस्टम के लिए एक इवेंट क्यू डेटा संरचना का वर्णन किया गया है, जो बेहतर प्रदर्शन का प्रदर्शन करता है। आमतौर पर उपयोग की जाने वाली सरल लिंक्ड सूची एल्गोरिदम, गैर-समान समय वितरण दिए जाने पर अच्छा व्यवहार, और एल्गोरिदम का सबसे खराब स्थिति विश्लेषण <math>\theta\left(\sqrt{n}\right)</math>, n कतार में घटनाओं की संख्या है।
1977 के अगस्त की एसीएम के संचार, पत्रिका में, डब्ल्यू आर फ्रांटा और कुर्त माली ने "समरूपी घटना सेट के लिए एक प्रभावी डेटा संरचना" नामक लेख प्रकाशित किया था। इस लेख में वे एक प्रभावी डेटा संरचना का वर्णन कर रहे थे जो समरूपी आधारित घटना सेट के लिए थी।, इसमें एक घटना कतार डेटा संरचना का वर्णन किया गया था जो आपूर्ति-प्रेरित समरूपी सिस्टमों के लिए उपयोगी थी। यह लेख "सामान्य रूप से उपयोग किए जाने वाले सरल लिंक्ड सूची कलन-विधि के सापेक्ष में "बेहतर प्रदर्शन प्रदान करती है", असमान समय वितरण के विषय में अच्छा व्यवहार दिखाती है, और सबसे खराब मामले में संघटना की संख्या के लिए वर्तमान जटिलता <math>\theta\left(\sqrt{n}\right)</math>,होती है, यहां 'n' कतार में घटनाएं होती हैं


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


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


इस क्रॉन द्वारा प्रयुक्त एल्गोरिथम इस प्रकार है:
असतत घटना अनुरूपक आभासी समय में चलते हैं, जितनी जल्दी हो सके घटना कतार से घटनाओं को छीलते हैं और अगले कार्यक्रम के निर्धारित समय पर उनकी धारणा को आगे बढ़ाते हैं। आभासी समय के सिवाय वास्तविक समय में घटना अनुरूपक चलाने से क्रॉन का एक संस्करण बनाया गया, जो अपना अधिकांश समय सोने में व्यतीत करता है, घटना अनुरूपक सूची के शीर्ष पर कार्य को निष्पादित करने के लिए निर्धारित समय की प्रतीक्षा करता है।
# स्टार्ट-अप पर, नाम की फ़ाइल देखें <code>.crontab</code> सभी खाताधारकों की गृह निर्देशिका में।
 
# प्रत्येक crontab फ़ाइल के लिए, भविष्य में अगली बार निर्धारित करें कि प्रत्येक कमांड को चलना चाहिए।
अगले स्कूल वर्ष में परद्यू में स्नातकोत्तर कार्यक्रम में नए छात्र सम्मिलित हुए, जिसमें कीथ विलियमसन भी थे, जो कंप्यूटर साइंस विभाग के सिस्टम कर्मचारी के रूप में सम्मिलित हुए। ब्राउन ने इसे एक "तापमान कार्य" के रूप में कहकर उनसे पूरे प्रोटोटाइप क्रॉन को एक प्रोडक्शन सेवा में विकसित करने का अनुरोध किया, और यह बहु-उपयोगकर्ता क्रॉन 1979 के अंतिम महीने में परद्यू में उपयोग में लाया गया। यह क्रॉन की यह संस्करण पूरी तरह से उन कंप्यूटर साइंस विभाग के वैक्स 11/780 पर इस्तेमाल हो रहे 32/V संस्करण के /ईटीएस/क्रॉन को पूरी तरह से प्रतिस्थापित कर दिया।
 
इस क्रॉन द्वारा उपयोग किया जाने वाला कलन-विधि निम्नलिखित है:
# प्रवर्तन, सभी खाताधारकों के होम निर्देशिकाओं में क्रॉनटैब नामक फ़ाइल की खोज करें।
# प्रत्येक क्रॉनटैब फ़ाइल के लिए, भविष्य में अगली बार निर्धारित करें कि प्रत्येक आदेश  को चलना चाहिए।
# उन आदेशों को फ्रांटा-माली घटना सूची में उनके संबंधित समय और उनके पांच क्षेत्र समय विनिर्देशक के साथ रखें।
# उन आदेशों को फ्रांटा-माली घटना सूची में उनके संबंधित समय और उनके पांच क्षेत्र समय विनिर्देशक के साथ रखें।
# मुख्य लूप दर्ज करें:
# मुख्य लूप में प्रवेश करें।:
## कतार के शीर्ष पर कार्य प्रविष्टि की जांच करें, गणना करें कि भविष्य में इसे कितनी दूर चलना चाहिए।
## कतार के शीर्ष पर स्थित कार्य प्रविष्टि की जांच करें, इसे कितने समय में चलना चाहिए यह निर्धारित करें।
## उस समय के लिए सोएं।
## उस समय अवधि के लिए शांति के लिए सो जाएं।
## जागने पर और सही समय की पुष्टि करने के बाद, कतार के शीर्ष पर (पृष्ठभूमि में) कार्य को उस उपयोगकर्ता के विशेषाधिकारों के साथ निष्पादित करें जिसने इसे बनाया था।
## जागने पर और सही समय की पुष्टि करने के बाद, क्यू में स्थित कार्य को स्वीकार करें, जिसके प्रदाता ने उसे बनाया है।
## इस आदेश को चलाने के लिए भविष्य में अगली बार निर्धारित करें और उस समय मूल्य पर ईवेंट सूची पर वापस रखें।
## इस आदेश को भविष्य में चलाने के लिए अगली बार का समय निर्धारित करें और उस समय मूल्य पर पुनः घटना सूची में रखें।
 
इसके अतिरिक्त, डेमन संशोधित crontab फ़ाइलों को फिर से स्कैन करने के लिए [[SIGHUP]] संकेतों का जवाब देता है और संशोधित crontab फ़ाइलों को देखने के लिए घंटे और आधे घंटे पर विशेष वेक अप इवेंट शेड्यूल करता है। कंप्यूटर के समय-समय पर ट्रैकिंग, यूनिक्स अलार्म शेड्यूलिंग, स्पष्ट समय-समय पर परिवर्तन, और प्रक्रिया प्रबंधन की अशुद्धियों से संबंधित बहुत विवरण यहां छोड़े गए हैं, जिनमें से सभी इस क्रॉन में कोड की अधिकांश पंक्तियों के लिए जिम्मेदार हैं। इस क्रॉन ने स्टडआउट और स्टेडर के आउटपुट को भी कैप्चर किया और किसी भी आउटपुट को क्रॉस्टैब मालिक को ई-मेल किया।


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


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


क्रॉन का यह संस्करण बाद में [[ यूनिक्स प्रणाली वी ]]ी और बीएसडी और उनके डेरिवेटिव, [[सन माइक्रोसिस्टम्स]] से [[सोलारिस (ऑपरेटिंग सिस्टम)]], [[सिलिकॉन ग्राफिक्स]] से [[ IRIX ]], [[ हेवलेट पैकर्ड ]] से [[एचपी-यूएक्स]], और [[आईबीएम]] से [[आईबीएम एआईएक्स]] में काफी हद तक अपरिवर्तित दिखाई दिया। तकनीकी रूप से, इन कार्यान्वयनों के लिए मूल लाइसेंस पर्ड्यू रिसर्च फाउंडेशन के पास होना चाहिए जिसने काम को वित्त पोषित किया,परंतु  यह ऐसे समय में हुआ जब ऐसे मामलों पर बहुत कम ध्यान दिया गया।
क्रॉन का यह संस्करण बाद में [[ यूनिक्स प्रणाली वी ]]ी और बीएसडी और उनके डेरिवेटिव, [[सन माइक्रोसिस्टम्स]] से [[सोलारिस (ऑपरेटिंग सिस्टम)]], [[सिलिकॉन ग्राफिक्स]] से [[ IRIX ]], [[ हेवलेट पैकर्ड ]] से [[एचपी-यूएक्स]], और [[आईबीएम]] से [[आईबीएम एआईएक्स]] में काफी हद तक अपरिवर्तित दिखाई दिया। तकनीकी रूप से, इन कार्यान्वयनों के लिए मूल लाइसेंस पर्ड्यू रिसर्च फाउंडेशन के पास होना चाहिए जिसने काम को वित्त पोषित किया,परंतु  यह ऐसे समय में हुआ जब ऐसे मामलों पर बहुत कम ध्यान दिया गया।
Line 149: Line 151:
[[जीएनयू परियोजना]] और [[लिनक्स]] के आगमन के साथ, नए क्रोन दिखाई दिए। इनमें से सबसे प्रचलित विक्सी क्रोन है, जिसे मूल रूप से 1987 में पॉल विक्सी द्वारा कोडित किया गया था। विक्सी क्रोन का संस्करण 3 1993 के अंत में जारी किया गया था। संस्करण 4.1 का नाम बदलकर [[इंटरनेट सिस्टम कंसोर्टियम]] क्रोन कर दिया गया था और जनवरी 2004 में जारी किया गया था। संस्करण 3, कुछ के साथ मामूली बग फिक्स, लिनक्स और बीएसडी के अधिकांश वितरणों में उपयोग किया जाता है।
[[जीएनयू परियोजना]] और [[लिनक्स]] के आगमन के साथ, नए क्रोन दिखाई दिए। इनमें से सबसे प्रचलित विक्सी क्रोन है, जिसे मूल रूप से 1987 में पॉल विक्सी द्वारा कोडित किया गया था। विक्सी क्रोन का संस्करण 3 1993 के अंत में जारी किया गया था। संस्करण 4.1 का नाम बदलकर [[इंटरनेट सिस्टम कंसोर्टियम]] क्रोन कर दिया गया था और जनवरी 2004 में जारी किया गया था। संस्करण 3, कुछ के साथ मामूली बग फिक्स, लिनक्स और बीएसडी के अधिकांश वितरणों में उपयोग किया जाता है।


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


अन्य लोकप्रिय कार्यान्वयनों में एनाक्रॉन और डीक्रॉन शामिल हैं। हालाँकि, एनाक्रॉन एक स्वतंत्र क्रॉन प्रोग्राम नहीं है। एक और क्रॉन जॉब को इसे कॉल करना चाहिए। dcron [[DragonFly BSD]] के संस्थापक [[मैथ्यू डिलन (कंप्यूटर वैज्ञानिक)]] द्वारा बनाया गया था, और इसका रखरखाव 2010 में जिम प्रायर द्वारा किया गया था।<ref>{{cite mailing list|url=https://mailman.archlinux.org/pipermail/arch-general/2010-January/009981.html |mailing-list=arch-general@archlinux.org |title=क्रॉन|date=2010-01-05 |access-date=2013-11-06 |first=Jim |last=Pryor}}</ref>
अन्य लोकप्रिय कार्यान्वयनों में एनाक्रॉन और डीक्रॉन सम्मिलित    हैं। हालाँकि, एनाक्रॉन एक स्वतंत्र क्रॉन प्रोग्राम नहीं है। एक और क्रॉन जॉब को इसे कॉल करना चाहिए। dcron [[DragonFly BSD]] के संस्थापक [[मैथ्यू डिलन (कंप्यूटर वैज्ञानिक)]] द्वारा बनाया गया था, और इसका रखरखाव 2010 में जिम प्रायर द्वारा किया गया था।<ref>{{cite mailing list|url=https://mailman.archlinux.org/pipermail/arch-general/2010-January/009981.html |mailing-list=arch-general@archlinux.org |title=क्रॉन|date=2010-01-05 |access-date=2013-11-06 |first=Jim |last=Pryor}}</ref>
2003 में, डेल मेलोर ने मैक्रों को पेश किया,<ref>{{cite web|url=https://www.gnu.org/software/mcron/design.html |title=मैक्रॉन - उपयोगकर्ता आवश्यकताएँ और विश्लेषण|first=Dale |last=Mellor |date=2003-06-01 |access-date=2019-06-11}}</ref> जीएनयू गुइल # गुइल स्कीम में लिखा गया एक क्रॉन संस्करण जो विक्सी क्रॉन के साथ क्रॉस-संगतता प्रदान करता है, साथ ही अधिक लचीलापन भी प्रदान करता है क्योंकि यह मनमाना [[योजना (प्रोग्रामिंग भाषा)]] कोड को शेड्यूलिंग गणना और नौकरी की परिभाषा में उपयोग करने की अनुमति देता है। चूँकि mcron डेमन और crontab दोनों फाइलें आमतौर पर स्कीम में लिखी जाती हैं (हालाँकि mcron पारंपरिक Vixie crontabs को भी स्वीकार करता है), उपयोगकर्ता की जॉब क्यू की संचयी स्थिति (कंप्यूटर साइंस) उनके जॉब कोड के लिए उपलब्ध होती है, जिसे [[iff]] चलाने के लिए शेड्यूल किया जा सकता है। अन्य नौकरियों के परिणाम कुछ मानदंडों को पूरा करते हैं। मैक्रोन डिफ़ॉल्ट रूप से गुइक्स पैकेज मैनेजर के तहत तैनात किया जाता है, जिसमें मोनाड_(फंक्शनल_प्रोग्रामिंग) के लिए पैकेज मैनेजर के लिए प्रावधान (GNU_[[Guix]]#Init_system) शामिल होते हैं, जो mcron crontabs का उत्सर्जन करते हैं, जबकि दोनों यह सुनिश्चित करते हैं कि नौकरी निष्पादन के लिए आवश्यक पैकेज स्थापित हैं और संबंधित क्रॉस्टैब्स सही ढंग से संदर्भित हैं उन्हें।<ref>{{cite web|url=https://www.gnu.org/software/guix/manual/en/html_node/Scheduled-Job-Execution.html#Scheduled-Job-Execution |title=GNU Guix Reference Manual: 8.8.2 Scheduled Job Execution |publisher=GNU Guix |date=2019-05-19 |access-date=2019-06-11}}</ref>
2003 में, डेल मेलोर ने मैक्रों को पेश किया,<ref>{{cite web|url=https://www.gnu.org/software/mcron/design.html |title=मैक्रॉन - उपयोगकर्ता आवश्यकताएँ और विश्लेषण|first=Dale |last=Mellor |date=2003-06-01 |access-date=2019-06-11}}</ref> जीएनयू गुइल # गुइल स्कीम में लिखा गया एक क्रॉन संस्करण जो विक्सी क्रॉन के साथ क्रॉस-संगतता प्रदान करता है, साथ ही अधिक लचीलापन भी प्रदान करता है क्योंकि यह मनमाना [[योजना (प्रोग्रामिंग भाषा)]] कोड को शेड्यूलिंग गणना और नौकरी की परिभाषा में उपयोग करने की अनुमति देता है। चूँकि mcron डेमन और क्रॉनटैब दोनों फाइलें आमतौर पर स्कीम में लिखी जाती हैं (हालाँकि mcron पारंपरिक Vixie क्रॉनटैबs को भी स्वीकार करता है), उपयोगकर्ता की जॉब क्यू की संचयी स्थिति (कंप्यूटर साइंस) उनके जॉब कोड के लिए उपलब्ध होती है, जिसे [[iff]] चलाने के लिए शेड्यूल किया जा सकता है। अन्य नौकरियों के परिणाम कुछ मानदंडों को पूरा करते हैं। मैक्रोन डिफ़ॉल्ट रूप से गुइक्स पैकेज मैनेजर के तहत तैनात किया जाता है, जिसमें मोनाड_(फंक्शनल_प्रोग्रामिंग) के लिए पैकेज मैनेजर के लिए प्रावधान (GNU_[[Guix]]#Init_system) सम्मिलित    होते हैं, जो mcron क्रॉनटैबs का उत्सर्जन करते हैं, जबकि दोनों यह सुनिश्चित करते हैं कि नौकरी निष्पादन के लिए आवश्यक पैकेज स्थापित हैं और संबंधित क्रॉस्टैब्स सही ढंग से संदर्भित हैं उन्हें।<ref>{{cite web|url=https://www.gnu.org/software/guix/manual/en/html_node/Scheduled-Job-Execution.html#Scheduled-Job-Execution |title=GNU Guix Reference Manual: 8.8.2 Scheduled Job Execution |publisher=GNU Guix |date=2019-05-19 |access-date=2019-06-11}}</ref>
एक [[ webcron ]] नियमित रूप से चलने के लिए रिंग कार्यों को शेड्यूल करता है जहां [[वेब होस्टिंग सेवा]] वातावरण में क्रॉन कार्यान्वयन उपलब्ध नहीं हैं।
एक [[ webcron ]] नियमित रूप से चलने के लिए रिंग कार्यों को शेड्यूल करता है जहां [[वेब होस्टिंग सेवा]] वातावरण में क्रॉन कार्यान्वयन उपलब्ध नहीं हैं।


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


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


क्रॉन प्रारूप के कुछ उपयोगों में पैटर्न की शुरुआत में एक सेकंड फ़ील्ड भी होता है। उस स्थिति में, क्रोन एक्सप्रेशन एक स्ट्रिंग है जिसमें 6 या 7 फ़ील्ड होते हैं।<ref>{{cite web |title=क्रोनट्रिगर ट्यूटोरियल|url=http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger |work=Quartz Scheduler Website |access-date=24 October 2011 |archive-url=https://web.archive.org/web/20111025080042/http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger |archive-date=25 October 2011 |url-status=dead }}</ref>
क्रॉन प्रारूप के कुछ उपयोगों में पैटर्न की शुरुआत में एक सेकंड फ़ील्ड भी होता है। उस स्थिति में, क्रोन एक्सप्रेशन एक स्ट्रिंग है जिसमें 6 या 7 फ़ील्ड होते हैं।<ref>{{cite web |title=क्रोनट्रिगर ट्यूटोरियल|url=http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger |work=Quartz Scheduler Website |access-date=24 October 2011 |archive-url=https://web.archive.org/web/20111025080042/http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger |archive-date=25 October 2011 |url-status=dead }}</ref>
Line 216: Line 218:
;थोड़ा सा ( <code>-</code> ): डैश रेंज को परिभाषित करता है। उदाहरण के लिए, 2000–2010 प्रत्येक वर्ष 2000 और 2010 के बीच, सम्मिलित रूप से इंगित करता है।
;थोड़ा सा ( <code>-</code> ): डैश रेंज को परिभाषित करता है। उदाहरण के लिए, 2000–2010 प्रत्येक वर्ष 2000 और 2010 के बीच, सम्मिलित रूप से इंगित करता है।


; प्रतिशत ( <code>%</code> ): कमांड में प्रतिशत-संकेत (%), जब तक कि बैकस्लैश (\) के साथ बच नहीं जाता है, न्यूलाइन वर्णों में बदल दिया जाता है, और पहले% के बाद के सभी डेटा मानक इनपुट के रूप में कमांड को भेजे जाते हैं।<ref>{{cite web|url=https://www.gnu.org/software/mcron/manual/html_node/Crontab-file.html |title=मैक्रोन क्रोंटैब संदर्भ|publisher=Gnu.org |access-date=2013-11-06}}</ref>
; प्रतिशत ( <code>%</code> ): आदेश  में प्रतिशत-संकेत (%), जब तक कि बैकस्लैश (\) के साथ बच नहीं जाता है, न्यूलाइन वर्णों में बदल दिया जाता है, और पहले% के बाद के सभी डेटा मानक इनपुट के रूप में आदेश  को भेजे जाते हैं।<ref>{{cite web|url=https://www.gnu.org/software/mcron/manual/html_node/Crontab-file.html |title=मैक्रोन क्रोंटैब संदर्भ|publisher=Gnu.org |access-date=2013-11-06}}</ref>




Line 240: Line 242:
* पर (आदेश)
* पर (आदेश)
* [[लॉन्च किया गया]]
* [[लॉन्च किया गया]]
* [[यूनिक्स कमांड की सूची]]
* [[यूनिक्स कमांड की सूची|यूनिक्स आदेश  की सूची]]
* [[निर्धारण (कंप्यूटिंग)]]
* [[निर्धारण (कंप्यूटिंग)]]
* [[systemd]] - क्रोन समतुल्य (टाइमर कहा जाता है) शामिल है
* [[systemd]] - क्रोन समतुल्य (टाइमर कहा जाता है) सम्मिलित    है
* [[fcron]]
* [[fcron]]
* [[विंडोज टास्क शेड्यूलर]]
* [[विंडोज टास्क शेड्यूलर]]

Revision as of 12:53, 21 June 2023

cron
Developer(s)AT&T Bell Laboratories
Initial releaseMay 1975; 50 years ago (1975-05)
Written inC
Operating systemUnix and Unix-like, Plan 9, Inferno
TypeJob scheduler

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

क्रॉन सामान्यतः सिस्टम रखरखाव या प्रशासन को स्वचालित करता है, यद्यपि इसकी सामान्यता से उपयोगीता के कारण इंटरनेट से फ़ाइलें डाउनलोड करने और नियमित अंतराल पर ईमेल डाउनलोड करने जैसी चीज़ों के लिए भी उपयोगी होता है।

क्रॉन सबसे अधिक उपयुक्त होता है जब नियमित रूप से दोहराने वाले कार्यों को निर्धारित करना होता है। एक बार कार्यों को निर्धारित करने के लिए जुड़े हुए यूटिलिटी का उपयोग किया जा सकता है।

क्रॉन का नाम समय के लिए यूनानी शब्द "ख्रोनोस" से प्राप्त हुआ है।[3]

संक्षिप्त विवरण

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

उपयोगकर्ताओं के पास अपनी अलग अलग क्रॉनटैब फ़ाइलें हो सकती हैं और आमतौर पर एक सिस्टम-व्यापी क्रॉनटैब फ़ाइल होती है, जिसे केवल प्रणाली प्रशासक संपादित कर सकते हैं।

क्रॉनटैब फ़ाइल की प्रत्येक पंक्ति एक कार्य को प्रतिष्ठान करती है और इसका आकार निम्नलिखित रूप में होता है

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

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

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

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

सामान्यतः, कार्य को निष्पादित किया जाता है जब समय/दिनांक निर्धारण क्षेत्रों की सभी मान समय/दिनांक के समान होते हैं। यद्यपि, एक अपवाद है: अगर "माह का दिन" और "सप्ताह का दिन" दोनों ही सीमित होते हैं तो एक या दोनों को समय/दिनांक के समान होना चाहिए। उदाहरण के रूप में, निम्नलिखित क्रॉन व्यवस्था द्वारा प्रतिदिन बजे 12:01 बजे अपाचे त्रुटि लॉग को साफ़ करेगी, यहां तक कि मान लिया जाए कि क्रॉन उपयोगकर्ता के लिए डिफ़ॉल्ट शेल बोर्न शेल के अनुरूप है:

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

यह उदाहरण हर शनिवार को 23:45 (रात 11:45 बजे) को नामक एक शेल प्रोग्राम "निर्यात_डंप.श" को चलाता है।

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

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

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

एमेज़ॅन इवेंटब्रिज़ के क्रॉन का अनुपालन करते समय, 0 से आधारित सप्ताह के दिन का उपयोग नहीं किया जाता है, बजाय इसके 1 से 7 चलते हैं। इसके अतिरिक्त, इसमें पहले सप्ताह का दिन और माह के अंतिम दिन जैसे अतिरिक्त अभिव्यक्ति सुविधाएँ भी होती हैं।[4]


गैर मानक पूर्वनिर्धारित निर्धारणों के संबंध

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

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

@रिबूट क्रॉन को संरचित करता है जिससे एक जॉब एक बार चले जब डेमन प्रारंभ होता है। क्योंकि क्रॉन सामान्यतः पुनः से प्रारंभ नहीं होता है, इसलिए यह मशीन की बूट होने के समय के समान होता है। इस व्यवहार को कुछ क्रॉन के अलग-अलग रूपों में बाध्य किया जाता है, जैसे डेबियन में प्रदान किया गया है,जिससे बस डेमन को पुनः प्रारंभ करने से @रिबूट जॉब पुनः नहीं चलते।

@रिबूट उपयोगी हो सकता है यदि किसी विशेष उपयोगकर्ता के तहत एक सर्वर या डेमन को सुरु करने की आवश्यकता हो और उपयोगकर्ता को प्रोग्राम को प्रारंभ करने के लिए इनिट समेकित करने का पहुंच नहीं होता है।

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

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

  • यदि ईटीएस/क्रोन फ़ाइल उपस्थित होती है, तो उसमें उपयोगकर्ता का नाम होना चाहिए जिससे उपयोगकर्ता को क्रॉन नियमों का उपयोग करने की अनुमति हो।
  • यदि /ईटीएस/क्रॉन.एलाऊ फ़ाइल उपस्थित नहीं हैपरंतु /ईटीएस/क्रॉन डेनि फ़ाइल उपस्थित होती है, तो क्रॉन नियमों का उपयोग करने के लिए उपयोगकर्ताओं को /ईटीएस/क्रॉन डेनि फ़ाइल में सूचीबद्ध नहीं होना चाहिए।

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

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

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

इस प्रकार, क्रॉन कार्यान्वयन एक विशेष परिप्रेक्ष्य के रूप में उपयोगकर्ता क्रॉनटैब्स में " क्रॉन_TZ=<समय क्षेत्र>" के रूप में लाइन्स को मान्यता दे सकता है, और उस समय क्षेत्र के साथ आपात रूप से आगामी क्रॉनटैब प्रविष्टियों का अनुवाद कर सकता है।[5]


इतिहास

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

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

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

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

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

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

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

परद्यू विश्वविद्यालय के एक स्नातकोत्तर छात्र, रॉबर्ट ब्राउन, इस लेख की समीक्षा करते हुए, क्रॉन और असतत घटना समरूपी के मध्य समानता को मान्य किया और प्रयोग के लिए फ्रांटा-माली

घटना सूची प्रबंधक (ईएलएम) के एक अंगीकृतन का निर्माण किया।

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

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

इस क्रॉन द्वारा उपयोग किया जाने वाला कलन-विधि निम्नलिखित है:

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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


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

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

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

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

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

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

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

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


यह भी देखें

नोट

संदर्भ

  1. "Difference between cron, crontab, and cronjob?". Stack Overflow.
  2. "Cron Job: a Comprehensive Guide for Beginners 2020". May 24, 2019.
  3. "लिनक्स - क्रॉन और क्रोंटैब".
  4. "नियमों के लिए अनुसूची अभिव्यक्तियाँ". Amazon.
  5. "crontab(5): tables for driving cron - Linux man page". Linux.die.net. Retrieved 2013-11-06.
  6. 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)
  7. 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)
  8. Pryor, Jim (2010-01-05). "क्रॉन". arch-general@archlinux.org (Mailing list). Retrieved 2013-11-06.
  9. Mellor, Dale (2003-06-01). "मैक्रॉन - उपयोगकर्ता आवश्यकताएँ और विश्लेषण". Retrieved 2019-06-11.
  10. "GNU Guix Reference Manual: 8.8.2 Scheduled Job Execution". GNU Guix. 2019-05-19. Retrieved 2019-06-11.
  11. "उबंटू क्रॉन हाउटो". Help.ubuntu.com. 2013-05-04. Retrieved 2013-11-06.
  12. "क्रोनट्रिगर ट्यूटोरियल". Quartz Scheduler Website. Archived from the original on 25 October 2011. Retrieved 24 October 2011.
  13. "मैक्रोन क्रोंटैब संदर्भ". Gnu.org. Retrieved 2013-11-06.
  14. "Oracle® Role Manager Integration Guide". Docs.oracle.com. Retrieved 2013-11-06.
  15. "क्रॉन प्रारूप". nnBackup. Retrieved 2014-05-27.
  16. "FreeBSD File Formats Manual for CRONTAB(5)". The FreeBSD Project.
  17. "crontab", The Open Group Base Specifications Issue 7 — IEEE Std 1003.1, 2013 Edition, The Open Group, 2013, retrieved May 18, 2015
  18. "पायथन क्रोंटैब". GitHub. Retrieved 2023-04-05.
  19. "टाइमर ट्रिगर सिंटेक्स". jenkins.com. Retrieved 2018-02-16.


बाहरी संबंध