लिनक्स में क्रोनटैब: जॉब शेड्यूलिंग उदाहरण

क्रोंटैब क्या है?

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

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

क्रोनजॉब्स का उपयोग क्यों करें?

लिनक्स में क्रोनजॉब्स का उपयोग करने के कारण यहां दिए गए हैं:

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

लिनक्स में क्रॉन का उपयोग कैसे करें?

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

लिनक्स क्रोनटैब प्रारूप

लिनक्स के क्रोनटैब में छह फ़ील्ड हैं। पहले पांच फ़ील्ड निष्पादन का समय और दिनांक निर्धारित करते हैं, और 6वां फ़ील्ड कमांड निष्पादन के लिए उपयोग किया जाता है।

क्रोनटैब सिंटैक्स:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

लिनक्स क्रोनटैब प्रारूप

  • एस्ट्रिक्स (*): मिलान के लिए उपयोग करें
  • सीमा निर्धारित करें: आपको 1-10 या 30-40 या जनवरी-मार्च, सोमवार-बुध जैसे हाइफ़न की मदद से एक सीमा निर्धारित करने की अनुमति देता है।
  • एकाधिक श्रेणियाँ परिभाषित करें: आपको अप्रैल-जून, अक्टूबर-दिसंबर जैसे अलग-अलग कमांड के साथ विभिन्न श्रेणियों को परिभाषित करने की अनुमति देता है।

क्रोनटैब कैसे जोड़ें/संशोधित करें

उपयोगकर्ता निम्नलिखित crontab कमांड की सहायता से अपने crontab कार्यों को संपादित कर सकते हैं:

$ crontab -u -e 

उपरोक्त कमांड आपके कंप्यूटर सिस्टम का व्यक्तिगत क्रोनटैब कॉन्फ़िगरेशन खोल देगा, जिसे आपके डिफ़ॉल्ट टेक्स्ट एडिटर का उपयोग करके संपादित किया जा सकता है।

आपको अपने क्रॉनटैब को पुनः आरंभ करने की आवश्यकता नहीं है क्योंकि जब आप निम्न आदेश का उपयोग करेंगे तो यह आपके परिवर्तनों को स्वचालित रूप से ग्रहण कर लेगा।

$ crontab -l

अपने crontab कार्यों को हटाने के लिए, निम्नलिखित कमांड का उपयोग करें।

$ crontab -r

क्रॉनटैब में जॉब जोड़ने या अपडेट करने के लिए नीचे दिए गए कमांड का उपयोग करें।

crontab -e

अन्य उपयोगकर्ता के crontab को संपादित करने का आदेश

crontab -u username -e

क्रोनटैब को सूचीबद्ध कैसे करें

वर्तमान उपयोगकर्ता की crontab प्रविष्टियाँ देखने के लिए कमांड

crontab -l

किसी विशिष्ट उपयोगकर्ता की crontab प्रविष्टियाँ देखने के लिए कमांड:

crontab -u username -l

महत्वपूर्ण क्रोंटैब उदाहरण

यहाँ, क्रोंटैब के कुछ महत्वपूर्ण उदाहरण दिए गए हैं

विवरण आदेश
विभिन्न शेड्यूलिंग कार्य करने के लिए क्रॉन कमांड।
नीचे दिया गया आदेश प्रतिदिन सुबह 7 बजे और शाम 5 बजे निष्पादित होता है।
0 7,17 * * * /scripts/script.sh
प्रत्येक 5 मिनट के बाद एक क्रॉन निष्पादित करने की आज्ञा।
*/5* * * * *  /scripts/script.sh
क्रॉन शेड्यूलर कमांड आपको प्रत्येक कार्य को निष्पादित करने में मदद करता है Monday सुबह 5 बजे। यह कमांड सिस्टम क्लीन-अप जैसे साप्ताहिक कार्यों को करने में सहायक है।
0 5 * * mon  /scripts/script.sh
कमांड आपकी स्क्रिप्ट को 3 मिनट के अंतराल पर चलाएगा।
*/3 * * * * /scripts/monitor.sh
एक क्रॉन को शेड्यूल करने के लिए कमांड जो एक विशिष्ट महीने के लिए निष्पादित होता है।
यह कमांड फरवरी, जून और सितंबर महीनों में चलने वाले कार्यों को चलाने के लिए है। कभी-कभी हमें किसी चुनिंदा मासिक कार्य को निष्पादित करने के लिए किसी कार्य को शेड्यूल करने की आवश्यकता होती है।
* * * feb,jun,sep *  /script/script.sh
चयनित दिनों पर निष्पादित करने के लिए कमांड। यह उदाहरण प्रत्येक दिन चलेगा Monday और बुधवार को शाम 5 बजे।
0 17 * * mon,wed  /script/script.sh
यह कमांड क्रॉन को हर महीने के पहले शनिवार को निष्पादित करने की अनुमति देता है।
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
एक स्क्रिप्ट को 6 घंटे के अंतराल पर चलाने के लिए कमांड ताकि इसे नीचे दिए अनुसार कॉन्फ़िगर किया जा सके।
0 */6 * * * /scripts/script.sh
यह आदेश किसी कार्य को दो बार निष्पादित करने के लिए शेड्यूल करता है Monday और मंगलवार। ऐसा करने के लिए निम्नलिखित सेटिंग्स का उपयोग करें।
0 4,17 * * mon,tue /scripts/script.sh
कमांड प्रत्येक 15 सेकंड के बाद एक क्रॉन को निष्पादित करने के लिए शेड्यूल करता है।
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
वार्षिक आधार पर कार्यों को शेड्यूल करने का आदेश।
@yearly टाइमस्टैम्प = से “0 0 5 1 *” है। यह हर साल के पांचवें मिनट में कार्य निष्पादित करता है। आप इसका उपयोग नए साल की शुभकामनाएँ भेजने के लिए कर सकते हैं।
@yearly /scripts/script.sh 
मासिक आधार पर कार्यों को निष्पादित करने का आदेश दें।
@monthly टाइमस्टैम्प “0 0 1 * *” के समान है। यह कमांड एक्सप्रेशन महीने के पहले मिनट में किसी कार्य के निष्पादन की अनुमति देता है।
@monthly /scripts/script.sh
एकल क्रॉन का उपयोग करके एकाधिक कार्यों को निष्पादित करने का आदेश.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
साप्ताहिक आधार पर निष्पादित करने के लिए कार्यों को शेड्यूल करने का आदेश।
@weekly टाइमस्टैम्प “0 0 4 * sun” के समान है। इसका उपयोग सिस्टम क्लीनअप आदि जैसे साप्ताहिक कार्यों को करने के लिए किया जाता है।
@weekly /bin/script.sh
कार्य को दैनिक आधार पर निष्पादित करने के लिए निर्धारित किया जाएगा।
@daily टाइमस्टैम्प “0 2 * * *” के समान है। यह हर दिन के दूसरे मिनट में कार्य निष्पादित करता है।
@daily /scripts/script.sh
कार्यों को प्रति घंटे निष्पादित करने की अनुमति देता है।
@hourly टाइमस्टैम्प “0 * * * *” के समान है। यह कमांड हर घंटे के पहले मिनट में एक कार्य निष्पादित करता है।
@hourly /scripts/script.sh
सिस्टम रीबूट पर कार्यों को निष्पादित करने की अनुमति देता है।
@reboot एक्सप्रेशन उन कार्यों के लिए उपयोगी है जिन्हें सिस्टम आपके सिस्टम स्टार्टअप पर चलाना चाहता है। यह कार्यों को बैकग्राउंड में स्वचालित रूप से शुरू करने में सहायक है।
@reboot /scripts/script.sh

सारांश:

  • क्रॉन का नाम ग्रीक शब्द "क्रोनोस" से लिया गया है जिसका प्रयोग समय के लिए किया जाता है।
  • क्रोनजॉब्स ओएस को लॉग फाइलों या डेटाबेस का निर्धारित बैकअप लेने में मदद करते हैं।
  • लिनक्स सिस्टम पैक में crontab नामक एक उपयोगी कार्य शेड्यूलर है जिसे रूट के रूप में एक स्वचालित प्रक्रिया चलाने के लिए शेड्यूल किया जा सकता है।
  • लिनक्स के क्रोनटैब में छह फ़ील्ड हैं। पहले पांच फ़ील्ड निष्पादन का समय और दिनांक निर्धारित करते हैं, और 6वां फ़ील्ड कमांड निष्पादन के लिए उपयोग किया जाता है।