क्रॉन एक समय-आधारित कार्य शेड्यूलिंग सेवा है जो यूनिक्स जैसे ऑपरेटिंग सिस्टम में पाई जाती है। उपयोगकर्ता निश्चित समय, तिथियों या अंतरालों पर समय-समय पर चलने के लिए नौकरियों (कमांड या स्क्रिप्ट) को शेड्यूल करते हैं।
क्रॉन की उत्पत्ति और प्रारंभिक इतिहास
क्रॉन का पहला कार्यान्वयन संस्करण 7 यूनिक्स से हुआ। शब्द "क्रोन" समय के लिए ग्रीक शब्द "क्रोनोस" से आया है। 1979 में जारी यूनिक्स के इस संस्करण में एक सरल क्रॉन प्रोग्राम था जो निर्दिष्ट अंतराल पर कार्यों को निष्पादित करता था। क्रॉन की कार्यक्षमता को बाद में 1987 में पॉल विक्सी द्वारा विस्तारित किया गया था। यह संस्करण, जिसे विक्सी क्रॉन के नाम से जाना जाता है, आज सबसे अधिक स्थापित किया जाने वाला संस्करण है, और यह वह संस्करण है जिसे आम तौर पर तब संदर्भित किया जाता है जब लोग "क्रोन" का उल्लेख करते हैं।
क्रॉन की अवधारणा पर विस्तार
क्रॉन उपयोगकर्ताओं को सिस्टम रखरखाव या प्रशासन को स्वचालित करने की अनुमति देता है - हालांकि इसकी सामान्य-उद्देश्यीय प्रकृति इसे इंटरनेट से फ़ाइलें डाउनलोड करने और नियमित अंतराल पर ईमेल डाउनलोड करने जैसी चीजों के लिए उपयोगी बनाती है। क्रॉन वातावरण एक सैंडबॉक्स की तरह होता है जिसमें क्रॉन जॉब्स नियमित शेल वातावरण से बाहर चलायी जाती हैं।
प्रत्येक उपयोगकर्ता के पास अपना स्वयं का क्रॉस्टैब हो सकता है, और हालांकि ये /var/spool/ में फ़ाइलें हैं, इन्हें सीधे संपादित करने का इरादा नहीं है। क्रॉन एक्सप्रेशन के सिंटैक्स को दो मुख्य प्रकार के सिंटैक्स में विभाजित किया जा सकता है: यूनिक्स क्रॉन सिंटैक्स, और एक अधिक जटिल सिंटैक्स जिसे क्रॉन एक्सप्रेशन सिंटैक्स या क्वार्ट्ज क्रॉन सिंटैक्स के रूप में जाना जाता है।
क्रॉन की आंतरिक संरचना और यह कैसे काम करता है
क्रॉन एक सरल लेकिन शक्तिशाली कॉन्फ़िगरेशन फ़ाइल के आधार पर संचालित होता है जिसे "क्रॉंटैब" फ़ाइल के रूप में जाना जाता है। इस फ़ाइल में प्रत्येक कार्य को चलाने के लिए एक पंक्ति होती है, जो पाँच समय और दिनांक फ़ील्ड से बनी होती है, जिसके बाद निर्दिष्ट समय पर चलाने के लिए एक आदेश होता है।
पाँच क्षेत्र दर्शाते हैं:
- घंटे के बाद मिनट (0 - 59)
- एक दिन में घंटे (0 - 23)
- महीने में दिन (1 - 31)
- वर्ष में महीने (1-12)
- सप्ताह के दिन (0 - 7, जहाँ 0 और 7 रविवार हैं)
कमांड फ़ील्ड में पहले पाँच फ़ील्ड में निर्दिष्ट समय पर चलने वाला कार्य शामिल होता है।
क्रॉन की मुख्य विशेषताएं
क्रॉन की प्राथमिक विशेषताओं में शामिल हैं:
- यह कार्यों को नियमित अंतराल पर पृष्ठभूमि में स्वचालित रूप से चलने की अनुमति देता है।
- यह विभिन्न समय इकाइयों के साथ कार्यों (स्क्रिप्ट या कमांड) को शेड्यूल करने के लिए एक लचीला मंच प्रदान करता है।
- प्रत्येक उपयोगकर्ता के पास अपनी स्वयं की crontab फ़ाइल हो सकती है।
- क्रॉन जॉब्स को मिनट, घंटे, सप्ताह के दिन, महीने के दिन और वर्ष के महीने के अनुसार चलाने के लिए निर्धारित किया जा सकता है।
- क्रॉन विभिन्न सिस्टम कार्यों को स्वचालित करने का एक सरल और प्रभावी तरीका प्रदान करता है।
क्रोन के प्रकार
क्रॉन जॉब्स को आम तौर पर निम्नानुसार वर्गीकृत किया जा सकता है:
प्रकार | विवरण |
---|---|
रीबूट | स्टार्टअप पर एक बार चलता है। |
एनाक्रॉन | दिनों में निर्दिष्ट अंतराल पर चलता है। |
सिस्टम क्रॉन | /etc/crontab और /etc/cron.d/ निर्देशिका में संग्रहीत, इन्हें सिस्टम-व्यापी बनाने का इरादा है। |
उपयोगकर्ता क्रॉन | प्रत्येक उपयोगकर्ता का अपना हो सकता है, और वे /var/spool/cron/crontabs/ में संग्रहीत हैं। |
क्रॉन का उपयोग, समस्याएं और उनके समाधान
क्रॉन कार्यों को स्वचालित करने के लिए उपयोगी है, लेकिन अगर सावधानी से उपयोग नहीं किया गया तो यह समस्याएं पैदा कर सकता है। उदाहरण के लिए, गलत तरीके से कॉन्फ़िगर किए गए क्रॉन जॉब के कारण उच्च CPU उपयोग हो सकता है। इसके अलावा, क्रॉन केवल अपने जॉब्स का आउटपुट, यदि कोई हो, उस उपयोगकर्ता को ईमेल करता है जिसके रूप में वह जॉब्स चलाता है। यदि नियमित रूप से जाँच न की जाए तो यह छूटी हुई त्रुटियों का कारण बन सकता है।
इन मुद्दों के सामान्य समाधानों में शामिल हैं:
- उच्च CPU उपयोग की नियमित रूप से जाँच करना और अनावश्यक कार्यों को पुन: कॉन्फ़िगर करना या रोकना।
- क्रॉन जॉब के रूप में सेट करने से पहले यह सुनिश्चित करना कि सभी कमांड और स्क्रिप्ट सही ढंग से चलें।
- क्रॉन जॉब्स की अधिक प्रभावी ढंग से निगरानी करने के लिए आउटपुट को लॉगफ़ाइल पर रीडायरेक्ट करना या मेल सर्वर सेट करना।
समान उपकरणों के साथ तुलना
क्रॉन के समान अन्य कार्य शेड्यूलर भी हैं, जैसे एनाक्रॉन और सिस्टमड टाइमर। इनके बीच प्राथमिक अंतर को संक्षेप में प्रस्तुत किया जा सकता है:
औजार | विवरण |
---|---|
क्रॉन | दिन के विशिष्ट समय में चलाए जाने वाले कार्यों के लिए उपयुक्त। छूटे हुए कार्य नहीं चलाता. |
एनाक्रॉन | दैनिक/साप्ताहिक/मासिक में एक बार चलाए जाने वाले कार्यों के लिए उपयुक्त। मशीन के वापस ऑनलाइन होने पर छूटे हुए कार्य चलेंगे। |
सिस्टमडी | अधिक जटिल परिदृश्यों के लिए उपयुक्त क्योंकि यह अधिक विकल्प प्रदान करता है और यह आधुनिक लिनक्स वितरण के साथ अच्छी तरह से एकीकृत होता है। |
भविष्य के परिप्रेक्ष्य और संबंधित प्रौद्योगिकियाँ
जैसे-जैसे यूनिक्स-आधारित प्रणालियाँ विकसित होती जा रही हैं, वैसे-वैसे क्रॉन भी विकसित हो रहा है। सिस्टमडी जैसे अधिक उन्नत कार्य अनुसूचियों के उद्भव के बावजूद, क्रॉन की सादगी और शक्ति यह सुनिश्चित करती है कि यह आज भी आम उपयोग में बना रहे।
कंटेनरीकृत अनुप्रयोगों और माइक्रोसर्विसेज आर्किटेक्चर की ओर हालिया रुझान ने क्रॉन का उपयोग करने के नए तरीके भी लाए हैं। उदाहरण के लिए, कुबेरनेट्स, एक लोकप्रिय कंटेनर ऑर्केस्ट्रेशन प्लेटफ़ॉर्म, में क्रोनजॉब्स नामक एक सुविधा है जो यूनिक्स-आधारित सिस्टम में क्रोन के समान है।
प्रॉक्सी सर्वर और क्रॉन
कुछ कार्यों को स्वचालित करने के लिए क्रॉन के साथ संयोजन में प्रॉक्सी सर्वर का प्रभावी ढंग से उपयोग किया जा सकता है। उदाहरण के लिए, यदि आपके पास एक स्क्रिप्ट है जिसे प्रॉक्सी सर्वर के माध्यम से किसी वेबसाइट या एपीआई तक नियमित रूप से पहुंचने की आवश्यकता है, तो आप उस स्क्रिप्ट को निर्दिष्ट अंतराल पर चलाने के लिए एक क्रॉन जॉब सेट कर सकते हैं।
क्रॉन का उपयोग प्रॉक्सी को निर्दिष्ट अंतराल पर घुमाने के लिए भी किया जा सकता है, जिससे किसी एकल प्रॉक्सी के अवरुद्ध होने की संभावना कम हो जाती है। उदाहरण के लिए, OneProxy की प्रॉक्सी सेवाओं को डेटा स्क्रैपिंग, सोशल मीडिया कार्यों को स्वचालित करने आदि जैसे कार्यों के लिए क्रॉन के साथ स्वचालित किया जा सकता है।
सम्बंधित लिंक्स
क्रॉन के बारे में अधिक जानकारी के लिए, निम्नलिखित संसाधनों पर विचार करें: