क्रोन और क्रोंटैब के साथ लिनक्स में कार्य कैसे शेड्यूल करें?

क्रोन और क्रोंटैब के साथ लिनक्स में कार्य कैसे शेड्यूल करें?

क्या आप यह जानते थे ब्लेड रनर 2019 में सेट है? यह अब से तीन साल है! उल्लेख नहीं करना भविष्य में वापस 2 , जहां वे 2015 में समय-यात्रा करते हैं। फिर भी हमारे पास उड़ने वाली कारें नहीं हैं और हमारे बीच कोई प्रतिकृतियां नहीं हैं (जहां तक ​​​​मुझे पता है)।





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





प्रत्येक Linux उपयोगकर्ता शेड्यूलिंग कार्यों से लाभ उठा सकता है, चाहे वे सिस्टम से संबंधित हों (जैसे पुराने लॉग को साफ करना और संकुल अद्यतन करना ) या उपयोगकर्ता की सेवा करना (ईमेल जांचना, पॉडकास्ट डाउनलोड करना...)। विंडोज उपयोगकर्ताओं के पास विंडोज 95 के बाद से टास्क शेड्यूलर है। लिनक्स पर समान काम करने वाली उपयोगिता को क्रॉन कहा जाता है, और यहां हम इसका उपयोग करने का तरीका बताएंगे।





विंडोज मीडिया प्लेयर पर वीडियो कैसे फ्लिप करें

क्रॉन क्या है?

क्रॉन एक सिस्टम सेवा है जो पृष्ठभूमि में चलती है, निर्धारित कार्यों की जांच करती है, और यदि कोई मिलती है तो उन्हें निष्पादित करती है। कार्य - जिसे 'क्रॉन जॉब्स' भी कहा जाता है - को विशेष कॉन्फ़िगरेशन फ़ाइलों (क्रॉस्टैब्स) में परिभाषित किया गया है, जो हर मिनट क्रॉन स्कैन करता है। विभिन्न लिनक्स वितरणों पर क्रॉन के कई संस्करण पाए जा सकते हैं। उदाहरण के लिए, फेडोरा के क्रोन के कांटे को कहा जाता है क्रोनी , और वहाँ भी हैं fcron , बक्रोन , तथा डीक्रॉन . कुछ में अतिरिक्त सुविधाएं हैं, जबकि अन्य सुरक्षा पर अधिक केंद्रित हैं, लेकिन वे सभी एक ही विचार पर आधारित हैं।

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



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

यदि आप अपने समय के प्रबंधन के बारे में गंभीर हैं, तो संभवतः आपके पास किसी प्रकार का कैलेंडर है - एक ऐप या कम से कम कागज का एक टुकड़ा। Crontab आपके कंप्यूटर के कैलेंडर की तरह है। यह निर्धारित कार्यों के बारे में जानकारी रखता है, क्रॉन को बताता है कि किस समय किस कमांड को चलाना है।

वास्तव में, आपके सिस्टम पर कई क्रॉस्टैब हैं। रूट (व्यवस्थापक) सहित प्रत्येक उपयोगकर्ता का अपना क्रॉस्टैब होता है। उपयोगकर्ता क्रॉस्टैब में संग्रहीत हैं





/var/spool/cron/crontabs/

. NS

crontab -l

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





sudo crontab -l

.

इसके अतिरिक्त, सिस्टम क्रोंटैब फ़ाइल है

/etc/crontab

जिसका उपयोग सिस्टम-वाइड कार्यों के लिए किया जाता है। आम तौर पर, वे निष्पादन योग्य, रूट-स्वामित्व वाली स्क्रिप्ट का रूप लेते हैं

/etc/cron.hourly/

,

/etc/cron.daily/

,

/etc/cron.weekly/

, तथा

/etc/cron.monthly/

फ़ोल्डर्स, और कुछ वितरणों पर,

/etc/cron.d/

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

क्रॉन के साथ कार्य कैसे शेड्यूल करें

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

crontab -e

आदेश। रूट या अन्य उपयोगकर्ताओं के क्रॉस्टैब को संपादित करने के लिए, प्रशासनिक विशेषाधिकारों के साथ कमांड चलाएँ और -u विकल्प के बाद उनका उपयोगकर्ता नाम जोड़ें:

sudo crontab -u root -e
sudo crontab -u username -e

Crontab फ़ाइल में दो खंड होते हैं। पहले वाले में पर्यावरण चर होते हैं जो स्वचालित रूप से सेट होते हैं। आप सुरक्षित रूप से PATH, HOME और SHELL चरों को बदल सकते हैं, और MAIL चर को संशोधित कर सकते हैं।

फ़ाइल का दूसरा भाग आपके निर्धारित कार्यों के साथ वास्तविक 'समय सारिणी' है। प्रत्येक कार्य तालिका में एक पंक्ति (पंक्ति) पर कब्जा कर लेता है, जिसमें कॉलम निम्नलिखित मानों का प्रतिनिधित्व करते हैं:

कार्यों को सफलतापूर्वक शेड्यूल करने के लिए, आपको क्रोंटैब सिंटैक्स के बारे में कुछ जानने की आवश्यकता है:

  • संख्याएं पूर्णांक (पूर्ण संख्याएं) होनी चाहिए, और आप किसी भी कॉलम में वाइल्डकार्ड के रूप में तारांकन (*) का उपयोग कर सकते हैं, जिसका अर्थ है 'हर मिनट/दिन/महीना...'।
  • 'महीने का दिन' कॉलम में, सावधान रहें कि ऐसी तारीख सेट न करें जो 'माह' कॉलम (उदाहरण के लिए, 30 फरवरी) में निर्दिष्ट महीने में न आए।
  • दोनों 'माह' और 'सप्ताह का दिन' कॉलम क्रमशः महीनों और दिनों के लिए संक्षिप्त नाम स्वीकार करते हैं, और वे केस असंवेदनशील होते हैं।
  • 'सप्ताह के दिन' कॉलम में, 0 और 7 दोनों रविवार के लिए हैं। 'घंटे' कॉलम के लिए 'सैन्य समय' (24-घंटे) प्रारूप की आवश्यकता होती है, लेकिन आप संख्या 24 का उपयोग नहीं कर सकते - इसके बजाय, 0 का अर्थ 12 बजे है ऐसा इसलिए है क्योंकि सप्ताह के मिनट, घंटे और दिन के मान शुरू होते हैं 1 के बजाय 0 पर।
  • सेकंड समर्थित नहीं हैं, इसलिए आप किसी कार्य को किसी विशेष सेकंड में शेड्यूल नहीं कर सकते हैं।

आप जो कर सकते हैं वह एक हाइफ़न का उपयोग करके समावेशी समय सीमा निर्धारित करना है (14-22 'घंटे' के तहत लगातार 2 बजे से 10 बजे तक कार्य चलाएगा), या अल्पविराम से अलग सूची को परिभाषित करके एक ही कार्य को कई बार चलाएं (1, 3,5 'सप्ताह के दिन' के तहत सोमवार, बुधवार और शुक्रवार को कार्य चलाएगा)।

इस बीच, चरण मान, एक फ़ॉरवर्ड स्लैश (/) द्वारा दर्शाए जाते हैं, और ये एक सीमा के भीतर स्किप की मात्रा को दर्शाते हैं; उदाहरण के लिए, 'घंटे' के तहत 3-20/3 हर तीन घंटे में सुबह 3 बजे से रात 8 बजे तक काम चलाएगा। यह तब उपयोगी होता है जब आप प्रत्येक X घंटे में कार्यों को दोहराना चाहते हैं, क्योंकि आप तारांकन और एक चरण (*/X) को जोड़ सकते हैं। जब तक आप संख्याओं का उपयोग कर रहे हैं, तब तक आप श्रेणियों को सूचियों के साथ और चरणों को श्रेणियों के साथ जोड़ सकते हैं। दूसरे शब्दों में, 'जन-मार' या 'मंगल, शुक्र-सूर्य' जैसे संयोजनों की अनुमति नहीं है।

वैकल्पिक रूप से, प्रत्येक कॉलम के लिए मान सेट करने के बजाय, आप केवल @weekly, @yearly, @monthly, @daily, या @hourly एक पंक्ति की शुरुआत में लिख सकते हैं, उसके बाद एक कमांड लिख सकते हैं। इस तरह शेड्यूल किया गया, कार्य पहले संभावित उदाहरण पर चलेंगे, इसलिए @weekly सप्ताह के पहले दिन आधी रात को चलेगा। यदि आप सिस्टम (पुनः) शुरू होने पर तुरंत कार्य चलाना चाहते हैं, तो @reboot कमांड का उपयोग करें।

इस उदाहरण में, हमने हर दिन 08:20 और 20:20 पर बैकअप शेड्यूल किया है। वॉलपेपर हर तीन दिन में 19:00 बजे स्वचालित रूप से बदल जाता है, और एक स्क्रिप्ट हर सोमवार को 10:20 और 20:20 पर नए पॉडकास्ट की जांच करेगी। 25 मार्च को जन्मदिन का रिमाइंडर सेट किया गया है और यह हर 30 मिनट में निर्दिष्ट समय-सीमा के भीतर चलता है। अंत में, एक स्क्रिप्ट हर 15 मिनट में 8 से 20 तक ईमेल की जांच करती है, लेकिन केवल कार्यदिवस पर। आप कॉलम के बीच रिक्त स्थान और टैब के साथ अपने क्रॉस्टैब को व्यवस्थित करने के लिए स्वतंत्र हैं, लेकिन उनके भीतर नहीं (अल्पविराम, हाइफ़न और स्लैश के बीच रिक्त स्थान न रखें)।

अगर यह सब बहुत जटिल लगता है, तो चिंता न करें -- आप हमेशा इंटरनेट पर भरोसा कर सकते हैं। जैसे उपकरण क्रोंटैब जेनरेटर , क्रोंटैब.गुरु , और कॉर्नटैब आपको क्रॉन्टाब सिंटैक्स को जाने बिना क्रॉन जॉब बनाने में मदद करता है। वे आपको दिखाते हैं कि अगली नौकरी कब चलेगी, और आमतौर पर उपयोग किए जाने वाले अभिव्यक्तियों के लिए टेम्पलेट प्रदान करते हैं। Crontab.guru गुच्छा का सबसे अच्छा है क्योंकि यह आपको crontab सिंटैक्स का लाइव-परीक्षण करने देता है, ताकि आप तुरंत देख सकें कि आपके परिवर्तन शेड्यूल को कैसे प्रभावित करेंगे।

कैसे जांचें कि क्रॉन जॉब्स निष्पादित हैं या नहीं

क्रॉन को पृष्ठभूमि में चुपचाप चलना चाहिए और जब तक यह आपके कार्यों का ख्याल रखता है, तब तक आपको बिना रुके काम करने देता है। लेकिन आप कैसे सुनिश्चित कर सकते हैं कि यह वास्तव में काम कर रहा है?

क्रोन में एक अंतर्निर्मित ईमेल सूचना सुविधा है, लेकिन इसके लिए कम से कम एक साधारण स्थानीय मेल सर्वर स्थापित करने की आवश्यकता है। बहुत से घरेलू उपयोगकर्ता इसे कॉन्फ़िगर करने के लिए तैयार नहीं हैं, और कई वितरण इसे डिफ़ॉल्ट रूप से प्रदान नहीं करते हैं (उदाहरण के लिए, उबंटू नहीं करता है)। क्रॉन पर जांच करने का सबसे तेज़ तरीका इस आदेश के साथ सिस्टम लॉग को स्कैन करना है:

cat /var/log/syslog | grep -i cron

-i विकल्प हमारी क्वेरी को केस-असंवेदनशील बनाता है। यह संभव है कि क्रॉन की अपनी लॉग फ़ाइल कहीं न कहीं होगी

/var/log/

, तो वहां देखें कि क्या यह आदेश उपयोगी परिणाम देने में विफल रहता है।

यदि आपको किसी विशेष क्रॉन जॉब के आउटपुट को सहेजने की आवश्यकता है, तो आप इसे किसी फ़ाइल पर रीडायरेक्ट कर सकते हैं। जिस कमांड को आप चलाना चाहते हैं, उसके बाद अपने क्रॉस्टैब के अंतिम कॉलम में पथ और फ़ाइल का नाम प्रदान करें:

30 * * * * /usr/bin/yourcommand > /home/username/logfile.txt

हर बार कमांड चलने पर सिंगल > सिंबल का इस्तेमाल करने से फाइल ओवरराइट हो जाएगी। इससे बचने के लिए, इसके बजाय >> का उपयोग करें - यह आउटपुट को मौजूदा फाइल में जोड़ देता है।

क्या होगा अगर क्रोन काम नहीं कर रहा है?

ऐसा हो सकता है कि आपने कुछ कार्य जोड़े हों, सिस्टम लॉग की जाँच की हो, और पाया हो कि वे उस तरह से निष्पादित नहीं हो रहे हैं जैसे उन्हें करना चाहिए। यहां कुछ चीजें हैं जिन पर आपको विचार करना चाहिए - और सावधान रहें - समस्या को ठीक करने का प्रयास करते समय।

क्या क्रॉन सेवा चल रही है?

जैसा कि आप जानते हैं, क्रॉन डिमन पृष्ठभूमि में चलना चाहिए। सुनिश्चित करें कि यह वास्तव में ऐसा है। सेवा को या तो क्रॉन्ड या सिर्फ क्रॉन कहा जाता है।

सिस्टमड का उपयोग कर वितरण के लिए:

systemctl status cron

अपस्टार्ट का उपयोग कर वितरण के लिए:

service cron status

यदि आपका वितरण 'पुराने' सिस्टम V init दृष्टिकोण का उपयोग कर रहा है, तो सभी सेवाओं को इसके साथ सूचीबद्ध करें:

विंडोज़ 10 प्रोग्रामों की खोज कैसे करें
initctl list

और देखें कि क्रॉन सूचीबद्ध है या नहीं।

क्या आपको क्रोंटैब फ़ाइल रखने की भी अनुमति है?

अपनी जाँच

/etc

नाम की फाइलों के लिए फ़ोल्डर

cron.allow

तथा

cron.deny

. उबंटू पर, न तो अस्तित्व में होना चाहिए, जिसका अर्थ है कि सभी उपयोगकर्ताओं को क्रॉन नौकरियों का प्रबंधन करने की अनुमति है। हालांकि, अगर वहाँ एक है

डिस्क क्लीनअप विंडोज़ 10 का उपयोग कैसे करें
cron.allow

फ़ाइल, इसमें आपका उपयोगकर्ता नाम होना चाहिए। इसके विपरीत, यदि

cron.deny

फ़ाइल मौजूद है, आपका उपयोगकर्ता नाम उसमें नहीं होना चाहिए। छोड़ना

cron.deny

फ़ाइल रिक्त का अर्थ है कि केवल रूट और उपयोगकर्ता सूचीबद्ध हैं

cron.allow

crontab फ़ाइलें हो सकती हैं।

क्या आपके चर ठीक से सेट हैं?

Crontab स्वचालित रूप से आपके SHELL चर को . पर सेट करता है

/bin/sh

. हालांकि, यदि आपकी पसंद का खोल मछली है या बैश, आपको SHELL वेरिएबल को बदलना चाहिए

. इसी तरह, PATH चर में डिफ़ॉल्ट रूप से केवल कुछ निर्देशिकाएँ होती हैं। यह वह जगह है जहाँ क्रोंटैब लिनक्स कमांड की तलाश करता है। यदि आपका क्रॉन जॉब चलने में विफल हो रहा है, तो ऐसा इसलिए हो सकता है क्योंकि क्रॉस्टैब आपके द्वारा उपयोग की जाने वाली कमांड को 'देख' नहीं पाता है। इससे बचने के लिए, कोलन द्वारा अलग किए गए PATH चर में कमांड वाली निर्देशिका जोड़ें:

पाथ=/ऑप्ट/मायएप/बिन:/usr/लोकल/एसबिन:/usr/लोकल/बिन:/usr/sbin:/usr/बिन:/sbin:/बिन

यदि आप इसे अपने क्रॉस्टैब में संपादित नहीं करना चाहते हैं, तो आप इन चरों को उस स्क्रिप्ट में परिभाषित कर सकते हैं जिसे आप क्रॉन जॉब के रूप में चलाना चाहते हैं।

क्या आपका क्रोंटैब बिंदु पर स्वरूपण कर रहा है?

Crontab सिंटैक्स बिल्कुल सहज नौकायन नहीं है। यहां तक ​​​​कि अगर आप इसे पहले बताए गए ऑनलाइन टूल से सत्यापित करते हैं, तो भी एक छोटी सी गलती क्रॉन को आपके काम को अंजाम देने से रोक सकती है। इससे सावधान रहें:

  • crontab फ़ाइल के अंत में एक खाली लाइन जोड़ें
  • यदि आपके आदेश में यह शामिल है तो बैकस्लैश के साथ % चिह्न से बचें
  • # से शुरू होने वाली अलग-अलग पंक्तियों के रूप में टिप्पणियाँ लिखें। पर्यावरण चर के समान या क्रॉन जॉब कमांड के आगे टिप्पणी न लिखें।

क्या आपको वास्तव में टर्मिनल का उपयोग करना है?

बिल्कुल नहीं। KDE उपयोगकर्ता KCron के साथ क्रॉन जॉब शेड्यूल कर सकते हैं, जो इस से उपलब्ध है सिस्टम सेटिंग्स> टास्क शेड्यूलर मापांक। एक सरल इंटरफ़ेस के साथ, जो आपको कुछ ही माउस-क्लिक में सब कुछ चुनने और बदलने की सुविधा देता है, KCron उपयोग करने के लिए एक खुशी है।

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

आपको अन्य समाधानों के बारे में पता होना चाहिए, जैसे क्रोंटैब-यूआई तथा मिनीक्रॉन . वे उन उपयोगकर्ताओं के लिए अधिक उपयुक्त हैं जो कई मशीनों और क्रॉन नौकरियों का प्रबंधन करते हैं, और उनकी सबसे अच्छी विशेषताओं में से एक वेब-आधारित इंटरफ़ेस है।

क्या कोई क्रॉन विकल्प हैं?

जबकि क्रोन लिनक्स के लिए मानक कार्य अनुसूचक है, यह निश्चित रूप से केवल एक ही नहीं है। NS आदेश पर त्वरित, एक बार की नौकरियों के लिए एकदम सही है जिसे विशेष कॉन्फ़िगरेशन फ़ाइलों के बिना, कमांड-लाइन से सीधे शेड्यूल किया जा सकता है। यदि आपको और चाहिए, तो है जीएनयूबैच , जो निर्भरता की धारणा का परिचय देता है। जीएनयूबैच के साथ, आप प्रत्येक कार्य के लिए विशिष्ट शर्तें निर्धारित कर सकते हैं, या एक निर्धारित कार्य को पिछले एक पर निर्भर कर सकते हैं। कुछ ऐसा ही हासिल किया जा सकता है सिस्टम टाइमर . हालांकि क्रॉन की तुलना में कॉन्फ़िगर करने के लिए कम व्यावहारिक, सिस्टमड टाइमर याद रख सकते हैं कि कंप्यूटर बंद होने पर कोई कार्य अपने शेड्यूल से चूक गया था, और अगली बार चालू होने पर इसे चलाएं।

यह कुछ ऐसा है जो क्रोन अकेले नहीं कर सकता। जैसे, यह सर्वर और कंप्यूटर के लिए उपयुक्त है जो लगातार चल रहे हैं, लेकिन यह उस कार्य को निष्पादित नहीं करेगा जो कंप्यूटर बंद होने के दौरान निर्धारित किया गया था। यह कहाँ है एनाक्रोन खेलने के लिए आता है। यह तकनीकी रूप से 'वैकल्पिक' या क्रॉन के प्रतिस्थापन नहीं है। इसके बजाय, एनाक्रॉन क्रॉन का पूरक है और इसके साथ प्रयोग किया जाना चाहिए, जो कि उबंटू और उबंटू-आधारित उत्पादों सहित कई लिनक्स वितरणों पर होता है। जब किसी कार्य को अंतिम बार निष्पादित किया गया था, तो एनाक्रॉन लॉग करता है, और जांचता है कि क्या सिस्टम के बंद होने के दौरान कोई छूटी हुई घटना थी। जब आप कंप्यूटर को वापस चालू करेंगे तो यह उन्हें चलाएगा, लेकिन हर कार्य को प्रति दिन केवल एक बार निष्पादित किया जा सकता है।

क्रोन के कुछ संस्करण, जैसे कि fcron, डिफ़ॉल्ट रूप से एनाक्रॉन की सुविधाएँ प्रदान करते हैं। उन्नत उपयोगकर्ता शायद देखना चाहें हक्रोन या सुपरक्रोन , जो बुनियादी क्रोन कार्यों में कई सुधार लाते हैं, लेकिन प्रबंधन के लिए कुछ हद तक चुनौतीपूर्ण भी हैं।

आप क्या कहते हैं? आप अपने डिजिटल कार्यों को कैसे व्यवस्थित करते हैं? आप Linux पर किन कार्यों को शेड्यूल करते हैं? टिप्पणियों में क्रॉन का उपयोग करने के लिए अपनी कहानियों और सुझावों को साझा करें।

छवि क्रेडिट: शेड्यूल बोर्ड गोंजालो आरागॉन द्वारा शटरस्टॉक के माध्यम से

साझा करना साझा करना कलरव ईमेल 12 वीडियो साइटें जो YouTube से बेहतर हैं

यहाँ YouTube के लिए कुछ वैकल्पिक वीडियो साइटें दी गई हैं। वे प्रत्येक एक अलग जगह पर कब्जा कर लेते हैं, लेकिन आपके बुकमार्क में जोड़ने लायक हैं।

आगे पढ़िए
संबंधित विषय
  • लिनक्स
  • लिनक्स
लेखक के बारे में इवाना इसाडोरा देवसिक(24 लेख प्रकाशित)

इवाना इसाडोरा एक स्वतंत्र लेखक और अनुवादक, लिनक्स प्रेमी और केडीई फैंगर्ल है। वह मुफ़्त और मुक्त स्रोत सॉफ़्टवेयर का समर्थन करती है और उसका प्रचार करती है, और वह हमेशा नए, अभिनव ऐप्स की तलाश में रहती है। संपर्क करने का तरीका जानें यहां .

इवाना इसाडोरा देवसीकी की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें