यह विस्तृत मार्गदर्शिका बताएगी कि Linux/Unix में कार्यों को शेड्यूल करने के लिए crontab कमांड का उपयोग कैसे करें।
वीडियो गेम के अलावा कंप्यूटर का उपयोग करने का एक बड़ा फायदा यह है कि वे उबाऊ और दोहराए जाने वाले कार्यों को करने में मन नहीं लगाते हैं जो हम नहीं करेंगे। दैनिक बैकअप चलाने जैसे नीरस कार्यों के लिए हम उन्हें हर दिन एक निश्चित समय पर चलाने के लिए शेड्यूल करना बेहतर समझते हैं, और अपने समय के साथ और अधिक दिलचस्प चीजें करते हैं। Linux और UNIX आमतौर पर डिफ़ॉल्ट रूप से "crontab" उपयोगिता के साथ आते हैं। यह बहुत उपयोगी कमांड आपको कार्यों को एक निर्दिष्ट समय पर चलाने और कॉन्फ़िगर के रूप में दोहराने की अनुमति देता है। "क्रोंटैब" का उपयोग करके निर्धारित कार्य को "क्रॉन जॉब" कहा जाता है।
क्रोंटैब कमांड आपको अपने सर्वर को विशेष महीने के निर्दिष्ट दिन के एक निर्दिष्ट मिनट पर एक स्क्रिप्ट निष्पादित करने के लिए निर्देश देने की अनुमति देता है। यह देखने के लिए कि आपकी मशीन पर कौन से क्रॉन जॉब्स चलाने के लिए सेटअप हैं, निम्न कमांड चलाएँ:
# क्रोंटैब -l
यदि आपकी मशीन में कुछ क्रॉन जॉब कॉन्फ़िगर हैं, तो यह निम्न जैसा कुछ प्रदर्शित करेगा:
0 6 * * * /opt/scripts/backup_script.sh
ऊपर दिया गया क्रॉस्टैब कॉन्फ़िगरेशन एक क्रॉन जॉब दिखाता है जो शेल स्क्रिप्ट "बैकअप_स्क्रिप्ट" को रोजाना सुबह 6 बजे निष्पादित करता है। * का अर्थ क्षेत्र में मूल्य के प्रत्येक उदाहरण पर चलना है। तो उपरोक्त उदाहरण में दिन, महीने और सप्ताह के दिनों में तारांकन का अर्थ है कि स्क्रिप्ट को महीने के हर दिन, साल के हर महीने और सप्ताह के हर दिन चलना चाहिए। पहला और दूसरा क्षेत्र क्रॉस्टैब को स्क्रिप्ट को शून्य मिनट और छह घंटे पर निष्पादित करने के लिए कहता है, जो कि सुबह 6 बजे है। तो, यह क्रॉन जॉब कॉन्फ़िगरेशन कुछ इस तरह पढ़ेगा, "स्क्रिप्ट /opt/scripts/backup_script.sh को शून्य मिनट, सुबह 6 बजे, हर दिन, हर महीने और सप्ताह के हर दिन चलाएं।" नीचे एक क्रॉस्टैब कॉन्फ़िगरेशन की "एनाटॉमी" की व्याख्या की गई है।
<ब्लॉकक्वॉट>
0 6 * * * /opt/scripts/backup_script.sh
| | | | |
| | | | |________________ सप्ताह का दिन (रविवार=0)
| | | |__________________ वर्ष का महीना
| | |____________________ महीने का दिन
| |______________________ दिन का घंटा
|________________________ घंटे का मिनट
नए क्रॉन जॉब शेड्यूल करने या पुराने संपादित करने के लिए निम्न कमांड निष्पादित करें:
# क्रोंटैब-ई
यह एक संपादक लाएगा जिसके साथ आप "क्रॉन जॉब्स" जोड़, संपादित या हटा सकते हैं। प्रत्येक सोमवार को अपराह्न 3:45 बजे किसी कार्य को चलाने का समय निर्धारित करने के लिए इस प्रकार प्रविष्टि जोड़ें:
45 15 * * 1 /opt/scripts/script.sh
आप किसी फ़ील्ड में एकाधिक प्रविष्टियाँ जोड़ने के लिए अल्पविराम का उपयोग भी कर सकते हैं। यदि आप आठ घंटे के अंतराल के साथ दिन में तीन बार स्क्रिप्ट चलाना चाहते हैं तो यह उपयोगी है। हालाँकि, सुनिश्चित करें कि आप किसी एक फ़ील्ड में प्रविष्टियों के बीच स्थान नहीं छोड़ते हैं। आपकी "क्रॉन जॉब" प्रविष्टि इस तरह दिखेगी:
0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh
उपरोक्त उदाहरण में स्क्रिप्ट "db_backup_script.sh" फरवरी और नवंबर के महीनों में हर दिन सुबह 1 बजे, सुबह 9 बजे और शाम 5 बजे चलती है। बहुत सी अच्छी चीजें हैं जो आप क्रॉन जॉब्स के साथ कर सकते हैं। वही सप्ताह के दिन, महीने और दिन के लिए काम करता है। एक बार जब आप इसे लटका लेंगे तो निम्न को आजमाएं। Crontab न केवल संख्याओं को समझता है, यह कुछ बुनियादी अंग्रेजी शब्दों पर भी काम कर सकता है:
स्ट्रिंग स्पष्टीकरण
—— ———–
@reboot एक बार चलाएं, अगली बार सिस्टम के रीबूट होने पर
@वार्षिक साल में एक बार दौड़ें, साल की शुरुआत में
@सालाना @yearly के समान, सालाना एक बार चलाएं
@मासिक महीने की शुरुआत में, महीने में एक बार चलाएं
@साप्ताहिक सप्ताह की शुरुआत में, सप्ताह में एक बार दौड़ें
@दैनिक दिन में एक बार, आधी रात को दौड़ें
@मध्यरात्रि @दैनिक के समान, आधी रात को दौड़ें
@घंटे घंटे की शुरुआत में, घंटे में एक बार दौड़ें
इसलिए, उदाहरण के लिए, यदि आप हर रात आधी रात को एक स्क्रिप्ट चलाना चाहते हैं, तो आपका कॉन्टैब कॉन्फ़िगरेशन इस तरह दिखेगा:
@मध्यरात्रि /opt/scripts/script.sh
"0 0 * * *" के बजाय "@midnight" का उपयोग करना वही काम करेगा और अनुरोधित स्क्रिप्ट को हर रात आधी रात को निष्पादित करेगा, जबकि इसके संख्यात्मक समकक्ष की तुलना में बहुत अधिक पठनीय होगा। आप श्रेणी घोषित करने के लिए हाइफ़न का उपयोग भी कर सकते हैं। नीचे दिए गए कमांड में "script.sh" को हर घंटे की शुरुआत में 1 AM से 6 AM तक निष्पादित किया जाएगा:
0 1-6 * * * /opt/scripts/script.sh
क्रॉन के साथ आप और भी बहुत सी अच्छी चीजें कर सकते हैं। प्रत्येक sysasmin इसके द्वारा कसम खाता है, इसे लटकाने के बाद इसका उपयोग करना बहुत आसान है, और बहुत शक्तिशाली है। इस उपकरण का बुद्धिमानी से उपयोग करें, क्योंकि किसी कार्य को गलत तरीके से निर्धारित करना कभी-कभी बहुत नुकसान कर सकता है। क्रोंटैब के "मैन पेज" को पढ़ने की अत्यधिक अनुशंसा की जाएगी। यह एट कमांड के बारे में भी सीखने लायक है, क्योंकि इसका उपयोग शेड्यूलिंग कमांड के लिए भी किया जाता है।