Using Cron and At for Scheduling Tasks in Linux
लिनक्स ऑपरेटिंग सिस्टम में, क्रॉन और एटी दो उपकरण हैं जिनका उपयोग कार्यों को शेड्यूल करने के लिए किया जा सकता है। ये उपकरण दोहराए जाने वाले कार्यों को स्वचालित कर सकते हैं, जैसे बैकअप, सॉफ़्टवेयर अपडेट और रखरखाव, समय की बचत और मानवीय त्रुटि के जोखिम को कम करना। यह लेख लिनक्स में क्रॉन और शेड्यूलिंग कार्यों के लिए उपयोग करने की मूल बातें तलाशता है।
क्रॉन क्या है?
क्रॉन लिनक्स में एक समय-आधारित जॉब शेड्यूलर है जो निर्दिष्ट अंतराल पर कमांड या स्क्रिप्ट चलाता है। यह एक डेमन (एक प्रोग्राम जो पृष्ठभूमि में चलता है) है जो बूट समय पर स्वचालित रूप से प्रारंभ हो जाता है। क्रॉन जॉब्स को crontab नामक कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है, जो /etc निर्देशिका में स्थित है। सिस्टम पर प्रत्येक उपयोगकर्ता के पास अपनी स्वयं की crontab फ़ाइल हो सकती है।
Crontab एक साधारण पाठ फ़ाइल है जिसमें निर्दिष्ट समय पर निष्पादित आदेशों की एक सूची होती है। फ़ाइल में रिक्त स्थान द्वारा अलग किए गए छह फ़ील्ड होते हैं, जो मिनट, घंटे, महीने का दिन, महीना, सप्ताह का दिन और निष्पादित होने वाली कमांड का प्रतिनिधित्व करते हैं। यहाँ क्रोंटैब प्रविष्टि का एक उदाहरण दिया गया है:
0 2 * * * /usr/bin/backup.sh
यह आदेश प्रति दिन 2:00 पूर्वाह्न पर बैकअप.श स्क्रिप्ट चलाता है। पहला क्षेत्र (0) मिनट का प्रतिनिधित्व करता है, दूसरा क्षेत्र (2) घंटे का प्रतिनिधित्व करता है, और अन्य क्षेत्र क्रमशः महीने, महीने और सप्ताह के दिन का प्रतिनिधित्व करते हैं। तारक चिह्न (*) का अर्थ है “हर”, इसलिए इस उदाहरण में, कमांड महीने के हर दिन और सप्ताह के हर दिन चलता है।
Crontab अन्य विशेष वर्णों का भी समर्थन करता है:
- एक अल्पविराम (,) एकाधिक मानों को अलग करता है। उदाहरण के लिए, “1,15,30** *” हर घंटे, दिन और महीने के हर 1, 15वें और 30वें मिनट में कमांड चलाता है।
- एक हाइफ़न (-) मानों की एक श्रेणी निर्दिष्ट करता है। उदाहरण के लिए, “0 8-17* * 1-5” सप्ताह के दिनों (सोमवार से शुक्रवार) पर हर घंटे सुबह 8 बजे से शाम 5 बजे के बीच कमांड चलाता है।
- एक स्लैश (/) एक चरण मान निर्दिष्ट करता है। उदाहरण के लिए, “*/5* * * *” हर पांच मिनट में आदेश चलाता है।
- अपनी crontab फ़ाइल को संपादित करने के लिए, आप -e विकल्प के साथ crontab कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, “crontab -e” डिफ़ॉल्ट पाठ संपादक में वर्तमान उपयोगकर्ता के लिए डिफ़ॉल्ट crontab फ़ाइल खोलता है।
At क्या है?
लिनक्स में एक कमांड लाइन उपयोगिता है जो आपको निर्दिष्ट समय पर एक बार के कार्यों को निष्पादित करने की अनुमति देती है। क्रॉन के विपरीत, जो कार्यों को बार-बार चलाता है, at कार्यों को एक बार चलाता है और फिर उन्हें कतार से हटा देता है। नौकरियों में at कमांड द्वारा परिभाषित किया जाता है, उसके बाद समय और कमांड निष्पादित किया जाता है। यहाँ एक उदाहरण है:
at 4:30 PM tomorrow
at> /usr/bin/update.sh
at> CTRL+D
यह आदेश update.sh स्क्रिप्ट को कल शाम 4:30 बजे चलने के लिए शेड्यूल करता है। कमांड चलाने के बाद, आप इनपुट को पूरा करने के लिए CTRL+D के बाद निष्पादित की जाने वाली कमांड दर्ज करते हैं। /var/spool/at निर्देशिका में एक कार्य फ़ाइल बनाता है, जिसमें कार्य का समय, दिनांक, और निष्पादित करने के लिए आदेश होता है।
At विभिन्न समय स्वरूपों का समर्थन करता है, जैसे “अभी,” “+5 मिनट,” “सुबह 10:30,” और “अगला शुक्रवार।” यह अर्धविराम (;) से अलग करके एक ही काम में कई कमांड का भी समर्थन करता है। कार्यों में अपने लंबित कार्यों को सूचीबद्ध करने के लिए, आप atq कमांड का उपयोग कर सकते हैं। किसी कार्य को निकालने के लिए, आप atrm आदेश का उपयोग कर सकते हैं और उसके बाद कार्य ID का उपयोग कर सकते हैं।
क्रॉन और एट एक साथ उपयोग करना
अधिक जटिल तरीके से कार्यों को स्वचालित करने के लिए क्रोन और at का अक्सर एक साथ उपयोग किया जाता है। उदाहरण के लिए, आप एक स्क्रिप्ट चलाने के लिए एक कार्य शेड्यूल कर सकते हैं जो एक विशिष्ट समय पर सिस्टम में नए उपयोगकर्ताओं को जोड़ता है, और फिर एक स्क्रिप्ट चलाने के लिए क्रॉन का उपयोग करता है जो हर दिन पुराने उपयोगकर्ताओं को हटा देता है। यह आपको उपयोगकर्ता प्रबंधन प्रक्रिया को स्वचालित करने और यह सुनिश्चित करने की अनुमति देता है कि आपका सिस्टम हमेशा अद्यतित रहे।
इसे प्राप्त करने के लिए, आप निम्न चरणों का उपयोग कर सकते हैं:
1. एक स्क्रिप्ट बनाएं जो सिस्टम में नए उपयोगकर्ता जोड़ती है। इस स्क्रिप्ट को एक फ़ाइल से इनपुट लेना चाहिए जिसमें उपयोगकर्ता विवरण, जैसे कि उपयोगकर्ता नाम, पासवर्ड और होम डायरेक्टरी शामिल हैं।
2. विशिष्ट समय पर चलने के लिए स्क्रिप्ट को शेड्यूल करने के लिए at कमांड का उपयोग करें। उदाहरण के लिए, आप हर महीने के पहले दिन आधी रात को चलने के लिए स्क्रिप्ट शेड्यूल कर सकते हैं। कमांड इस तरह दिखेगी:
at midnight 1st day of month
at> /usr/bin/addusers.sh
at> CTRL+D
यह आदेश हर महीने के पहले दिन आधी रात को चलने के लिए addusers.sh स्क्रिप्ट शेड्यूल करता है।
3. एक स्क्रिप्ट बनाएं जो पुराने उपयोगकर्ताओं को सिस्टम से हटा दे। इस स्क्रिप्ट को उन उपयोगकर्ताओं की खोज करनी चाहिए जिन्होंने कुछ दिनों के लिए लॉग इन नहीं किया है और उनके खाते हटा दिए हैं।
4. प्रतिदिन एक विशिष्ट समय पर स्क्रिप्ट चलाने के लिए क्रॉन का उपयोग करें। उदाहरण के लिए, आप स्क्रिप्ट को प्रतिदिन 3:00 AM पर चलने के लिए शेड्यूल कर सकते हैं। क्रोंटैब प्रविष्टि इस तरह दिखेगी:
0 3 * * * /usr/bin/deleteusers.sh
यह आदेश प्रतिदिन 3:00 पूर्वाह्न पर deleteusers.sh स्क्रिप्ट चलाता है।
क्रॉन और एक साथ उपयोग करके, आप जटिल कार्यों को स्वचालित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि वे समय पर निष्पादित हों। यह समय बचा सकता है, मानवीय त्रुटि के जोखिम को कम कर सकता है और आपके सिस्टम की समग्र दक्षता में सुधार कर सकता है।
निष्कर्ष
Linux ऑपरेटिंग सिस्टम में कार्यों को शेड्यूल करने के लिए Cron और at शक्तिशाली उपकरण हैं। क्रॉन का उपयोग निर्दिष्ट अंतराल पर कमांड या स्क्रिप्ट चलाने के लिए किया जा सकता है, जबकि एक विशिष्ट समय पर एक बार के कार्यों को शेड्यूल करने के लिए उपयोग किया जा सकता है।
इन उपकरणों का एक साथ उपयोग करके, आप जटिल कार्यों को स्वचालित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि वे समय पर निष्पादित हों। यह समय बचा सकता है, मानवीय त्रुटि के जोखिम को कम कर सकता है और आपके सिस्टम की समग्र दक्षता में सुधार कर सकता है। थोड़े से अभ्यास के साथ, आप अपने Linux सिस्टम को स्वचालित करने के लिए cron और at का उपयोग करने में विशेषज्ञ बन सकते हैं।