संपादित 4 महीने पहले द्वारा ExtremeHow संपादकीय टीम
फेडोराक्रॉनकार्य अनुसूचनास्वचालनकमांड लाइनटर्मिनलसिस्टम प्रशासनकॉन्फ़िगरेशनसॉफ्टवेयरकंप्यूटर
अनुवाद अपडेट किया गया 4 महीने पहले
कार्य अनुसूचि करने का काम सर्वर प्रबंधन और स्वचालन का महत्वपूर्ण हिस्सा है, विशेष रूप से लिनक्स वातावरण में। Fedora, जो कि एक अत्यधिक लोकप्रिय लिनक्स वितरण है, पर कार्य अनुसूचि के लिए सबसे आम उपकरणों में से एक cron है। Cron यूनिक्स समान ऑपरेटिंग सिस्टम में एक समय आधारित कार्य शेड्यूलर है, जो विशिष्ट अंतराल या समय पर स्वचालित रूप से स्क्रिप्ट्स या कमांड्स चला सकता है। आप इसे सिस्टम मेंटेनेंस, बैकअप्स, मॉनिटरिंग या किसी भी दोहराव वाले कार्य को स्वचालित करने के लिए उपयोग कर सकते हैं। यह व्यापक मार्गदर्शिका आपको Fedora पर cron का उपयोग करके कार्यों को शेड्यूल करने की प्रक्रिया के बारे में बताएगी।
Cron कार्य अनुसूचि प्रबंधन के लिए क्रोनटैब नामक एक विन्यास फ़ाइल (क्रोन टेबल का संक्षिप्त रूप) का उपयोग करता है। सिस्टम पर प्रत्येक उपयोगकर्ता के पास अपनी स्वयं की क्रोनटैब फ़ाइल हो सकती है। क्रोनटैब फ़ाइल में प्रत्येक पंक्ति एक अनुसूचित कार्य का प्रतिनिधित्व करती है। क्रोन प्रत्येक उपयोगकर्ता के लिए क्रोनटैब की सामग्री की जांच करता है और उसमें परिभाषित कार्यों को चलाता है। ये कार्य एक कमांड और एक अनुसूचि से बने होते हैं।
क्रोनटैब प्रविष्टि का मूल सिंटैक्स है:
* * * * * command_to_run
इस सिंटैक्स का अर्थ है:
इसका संभवतः यह उदाहरण हो सकता है:
30 2 * * 1 /home/user/backup.sh
यह क्रोन कार्य प्रत्येक सोमवार (1 सोमवार का प्रतिनिधित्व करता है) को 2:30 AM पर /home/user/backup.sh
स्क्रिप्ट चलाएगा। आइए इसे विस्तार से देखें कि कैसे हम इस उपकरण का हमारे लाभ के लिए उपयोग कर सकते हैं।
अधिकांश Fedora प्रतिष्ठान में डिफ़ॉल्ट रूप से क्रोन सेवा स्थापित होगी। यदि यह स्थापित नहीं है, तो आप इसे आसानी से जोड़ सकते हैं। यह सुनिश्चित करने के लिए कि आपके पास क्रोन स्थापित है, निम्नलिखित कमांड का उपयोग करें:
sudo dnf install cronie
ऊपर दिया गया कमांड क्रोन डिमन स्थापित करेगा, जो कि क्रोन कार्यों के प्रबंधन के लिए ज़िम्मेदार है। स्थापना के बाद, सुनिश्चित करें कि सेवा चल रही है:
sudo systemctl start crond
sudo systemctl enable crond
start
कमांड क्रोन सेवा शुरू करेगा, जबकि enable
कमांड सुनिश्चित करेगा कि यह बूट समय पर स्वचालित रूप से शुरू हो जाए।
उपयोगकर्ता कार्यों को शेड्यूल करने के लिए एक क्रोनटैब फ़ाइल बना सकते हैं। यह निम्नलिखित कमांड टाइप करके किया जा सकता है:
crontab -e
ऊपर दिया गया कमांड एक संपादक खोलता है जहां आप अपने क्रोन कार्य लिख सकते हैं। यदि आप पहली बार क्रोनटैब का उपयोग कर रहे हैं, तो यह आपको संपादक चुनने के लिए कह सकता है। अपने पसंदीदा टेक्स्ट संपादक (जैसे कि nano, vim आदि) को चुनें।
जब आप अपना क्रोनटैब संपादित कर रहे हैं, तो यह महत्वपूर्ण है कि प्रत्येक क्रोन कार्य कमांड को पहले वर्णित सिंटैक्स में सही ढंग से निर्दिष्ट किया गया हो। अपने कार्यों को जोड़ने के बाद, फ़ाइल को सुरक्षित करें और संपादक से बाहर निकलें। क्रोन स्वचालित रूप से परिवर्तनों को पंजीकृत करेगा।
अब जब हम जानते हैं कि क्रोनटैब फ़ाइल तक कैसे पहुंचें और क्रोन कार्य कैसे बनाएं, आइए कुछ आम उदाहरणों को देखें:
0 * * * * /home/user/hourly-task.sh
यह hourly-task.sh
को हर घंटे के शुरू में होम डायरेक्टरी से निष्पादित करेगा।
30 14 1 3 * echo "लॉग्स चेक करना याद रखें" >> /home/user/notes.txt
यह कमांड 1 मार्च को दोपहर 2:30 बजे notes.txt
में एक रिमाइंडर नोट जोड़ेगा।
0 0 * * 0/2 /home/user/cleanup.sh
इस सेटअप में, cleanup.sh
हर दूसरे रविवार को मध्यरात्रि पर निष्पादित होता है।
Cron उपयोगकर्ता की .bashrc
, .profile
या इसी तरह की फाइलों से पर्यावरण चर लोड नहीं करता है। इसलिए, यदि आपका स्क्रिप्ट विशेष पर्यावरण चर पर निर्भर करता है, तो आप इन्हें सीधे अपने क्रोनटैब फाइल में क्रोन कार्य से पहले निर्दिष्ट कर सकते हैं:
PATH=/usr/local/bin:/bin:/usr/bin:/home/user/bin 30 1 * * * /home/user/some_command --options
हर क्रोन कार्य एक विशिष्ट पर्यावरण के साथ चलता है, इसलिए यह महत्वपूर्ण है कि क्रोनटैब फ़ाइल में सही पथ और चर सेट किए जाएं।
Cron पांंच समय और तिथि फ़ील्ड्स के स्थान पर कुछ विशेष स्ट्रिंग्स का उपयोग करने की अनुमति देता है, जिससे अनुसूचि सरल हो जाती है:
@reboot
: स्टार्टअप के बाद एक बार चलाएं।@yearly
या @annually
: एक वर्ष में एक बार चलाएं, यानी 0 0 1 1 *
।@monthly
: एक महीने में एक बार चलाएं, जैसे 0 0 1 * *
।@weekly
: एक सप्ताह में एक बार चलाएं, i.e. 0 0 * * 0
।@daily
: एक दिन में एक बार चलाएं, i.e. 0 0 * * *
।@hourly
: एक घंटे में एक बार चलाएं, i.e. 0 * * * *
।ये पूर्वनिर्धारित स्ट्रिंग्स क्रोनटैब प्रविष्टि को अधिक पठनीय और लिखने में तेज बनाते हैं।
उदाहरण के लिए, daily-maintenance.sh
स्क्रिप्ट को प्रतिदिन एक बार चलाने के लिए, आप उपयोग कर सकते हैं:
@daily /home/user/daily-maintenance.sh
डिफ़ॉल्ट रूप से, क्रोन आउटपुट (stdout और stderr दोनों) को स्थानीय मशीन पर उपयोगकर्ता के ईमेल पर भेजता है। यदि आप इसे एक फ़ाइल में रीडायरेक्ट करना चाहते हैं, तो आप कमांड को इस प्रकार संशोधित कर सकते हैं:
* * * * * /home/user/script.sh > /home/user/logfile 2>&1
यहां 2>&1
मानक त्रुटि (stderr) को मानक आउटपुट (stdout) पर रीडायरेक्ट करता है, और आउटपुट logfile
में लिखा जाता है।
वर्तमान उपयोगकर्ता के लिए सभी क्रोन कार्यों को सूचीबद्ध करने के लिए, टाइप करें:
crontab -l
वर्तमान उपयोगकर्ता के लिए क्रोनटैब फाइल को हटाने के लिए, उपयोग करें:
crontab -r
डिबगिंग कठिन हो सकता है क्योंकि क्रोन का अपना पर्यावरण होता है और यह डिफ़ॉल्ट रूप से उपयोगकर्ता शेल कॉन्फ़िगरेशन को लोड नहीं करता है। यहां कुछ चरण दिए गए हैं जिन्हें अपने क्रोन कार्यों को ठीक करने के लिए आज़मा सकते हैं:
/var/log/cron
के तहत पाए जाते हैं या Fedora में journalctl
कमांड का उपयोग करके पाए जाते हैं।जबकि बुनियादी शेड्यूलिंग अधिकांश कार्यों को संभाल लेती है, उन्नत तकनीकों का उपयोग अधिक जटिल शेड्यूलिंग आवश्यकताओं के लिए किया जा सकता है:
आप क्रोनटैब में किसी भी फील्ड के लिए मानों की सूची निर्दिष्ट कर सकते हैं। उदाहरण के लिए, हर महीने की पहली और पंद्रहवीं तारीख को एक कार्य चलाने के लिए:
0 0 1,15 * * /home/user/payroll.sh
स्टेप मान आपको अंतराल निर्दिष्ट करने की अनुमति देता है। उदाहरण के लिए, हर 10 मिनट में एक कार्य चलाने के लिए:
*/10 * * * * /home/user/check-system.sh
*/10
प्रतीक "हर दस मिनट" का प्रतीक है।
Cron एक शक्तिशाली और बहुमुखी उपकरण है जो Fedora और कई अन्य यूनिक्स-समान सिस्टम्स पर उपलब्ध है। सटीक समय अंतराल सेट करके और दोहराव कार्यों को स्क्रिप्ट करके, सिस्टम प्रशासक और उपयोगकर्ता उत्पादकता और सिस्टम विश्वसनीयता को बहुत बढ़ा सकते हैं। क्रोन की क्षमताओं के उपयोग और समझ से मैनुअल कार्यभार को बहुत कम किया जा सकता है जो अन्यथा निरंतर ध्यान और हस्तक्षेप की आवश्यकता होती है।
इस गाइड के साथ, आपको अब Fedora पर क्रोन कार्य सेट करने और प्रबंधित करने की एक ठोस समझ होनी चाहिए। चाहे आप बुनियादी शेड्यूलिंग कर रहे हों, पर्यावरण चरों का उपयोग कर रहे हों, आउटपुट को रीडायरेक्ट कर रहे हों, या उन्नत शेड्यूलिंग तकनीकों का उपयोग कर रहे हों, क्रोन आपके विशिष्ट आवश्यकताओं के अनुसार कार्य प्रबंधन को अनुकूलित करने के लिए अनेक विकल्प प्रदान करता है।
क्रोनी पैकेज का और विस्तार में अन्वेषण करें, और अतिरिक्त विकल्पों और संभावनाओं में डूबके विभिन्न नौकरियों के साथ प्रयोग करके देखें जो संचालन को कौशल-युक्त बनाने में सहायता करे। स्वचालन प्रभावी सिस्टम प्रबंधन का मूल मंत्र है, और क्रोन में महारत हासिल करना लिनक्स उपयोगकर्ताओं के लिए एक आवश्यक कौशल है। अपने कार्य अनुसूचि को दोहराते रहें और उत्तम करते रहें, और अपनी प्रणाली को सुगमता और कुशलता से चलाने के लिए क्रोन की शक्ति का लाभ उठाएं।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं