लिनक्स कार्यों को स्वचालित करने में आपकी मदद करने के लिए 5 क्रोंटैब उदाहरण

लिनक्स कार्यों को स्वचालित करने में आपकी मदद करने के लिए 5 क्रोंटैब उदाहरण

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





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





चाहे आप साधारण उपयोगकर्ता कार्य कर रहे हों या पूर्ण विकसित सिस्टम प्रशासन, यह समझना कि व्यावहारिक उदाहरणों का उपयोग करके क्रोन कैसे काम करता है।





1. सिस्टम-वाइड Crontab . का उपयोग करके /tmp की सफाई

NS / टीएमपी निर्देशिका किसी भी प्रोग्राम या सिस्टम के उपयोगकर्ता द्वारा सामान्य प्रयोजन के उपयोग के लिए एक अस्थायी स्थान है। कई यूनिक्स सिस्टम स्टार्टअप के दौरान /tmp निर्देशिका में पुरानी फाइलों को हटा देंगे। अन्य लोग इस ऑपरेशन को शेड्यूल करते हैं, अक्सर क्रॉन का उपयोग करते हुए।

हालाँकि, यदि आप इस प्रक्रिया पर कस्टम नियंत्रण चाहते हैं, या इसे किसी भिन्न निर्देशिका में लागू करना चाहते हैं, तो त्वरित क्रॉन कार्य सेट करना ऐसा करने का एक आसान तरीका है।



यहाँ /tmp, या अपनी पसंद की किसी अन्य निर्देशिका को साफ करने का एक तरीका है:

1 3 * * * /usr/bin/find /tmp -type f -atime +10 -delete

हर दिन तीन बजकर एक मिनट पर क्रोन इस कमांड को निष्पादित करेगा। यह उपयोगकर्ता है खोज आदेश /tmp निर्देशिका में फ़ाइलों को खोजने के लिए। यह सामान्य फ़ाइलों के अलावा कुछ भी फ़िल्टर करता है जिसे कम से कम 10 दिन पहले अंतिम बार संशोधित किया गया था। इसके बाद यह ऐसी सभी फाइलों को हटा देता है जो इसे मिलती हैं।





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

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





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

2. डेटाबेस बैकअप दो बार दैनिक

अब से, उपयोगकर्ता-विशिष्ट कार्यों पर ध्यान केंद्रित करें जिन्हें आप अपने स्थानीय क्रॉस्टैब के माध्यम से प्रबंधित कर सकते हैं। आप निम्न आदेश का उपयोग करके अपने वर्तमान उपयोगकर्ता के क्रॉस्टैब को संपादित कर सकते हैं:

crontab -e

इस क्रॉस्टैब में ऐसे कार्य होने चाहिए जो आपके उपयोगकर्ता खाते के लिए विशिष्ट हों। कल्पना कीजिए कि आप एक प्रोजेक्ट पर काम कर रहे हैं जिसमें एक MySQL डेटाबेस को पॉप्युलेट करना शामिल है। आप का उपयोग कर सकते हैं mysqldump संपूर्ण डेटाबेस का SQL डंप बनाने के लिए उपकरण। इसके आउटपुट को पुनर्निर्देशित करके, आपके पास आसान, शेड्यूल्ड डेटाबेस बैकअप हो सकता है।

30 4 * * * /usr/local/mysql/bin/mysqldump --login-path=local --databases albums > /tmp/album-db.$(date +\%s).sql

डिफ़ॉल्ट रूप से, क्रॉन उस उपयोगकर्ता को ईमेल के माध्यम से आउटपुट (त्रुटियों सहित) भेजता है जिससे crontab फ़ाइल संबंधित है। लेकिन आप आउटपुट को उसी तरह से रीडायरेक्ट कर सकते हैं जैसे आप कमांड लाइन से करते हैं > फ़ाइल नाम अंकन।

मेरी सेब घड़ी इतनी जल्दी क्यों मर जाती है

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

3. कस्टम स्क्रिप्ट के साथ साइट अपटाइम की जाँच करना

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

* * * * * /Users/bobby/bin/site-monitor.sh

ध्यान दें कि, सिद्धांत रूप में, आप इसका उपयोग कर सकते हैं घर एक छोटी कमांड के लिए चर या टिल्ड विस्तार:

* * * * * ~/bin/site-monitor.sh

आप ऐसा करने से बचना चुन सकते हैं, अगर क्रॉन कभी इसका समर्थन करना बंद कर देता है। पूर्ण पथ का उपयोग करने में कोई वास्तविक हानि नहीं है और यह यकीनन अधिक पठनीय है।

स्क्रिप्ट स्वयं को लाने के लिए कर्ल प्रोग्राम का उपयोग करती है HTTP स्थिति कोड किसी दिए गए URL के लिए। यदि स्थिति सफलता के अलावा कुछ भी इंगित करती है, तो स्क्रिप्ट आउटपुट को एक संदेश लिखती है।

जैसा कि पहले उल्लेख किया गया है, क्रॉन इस आउटपुट को हमें ईमेल के माध्यम से भेजेगा। क्रॉन में कमांड का सफलता पर कोई आउटपुट नहीं होना उपयोगी हो सकता है।

#!/bin/bash
STATUS=`curl -s -o /dev/null -I -w '%{http_code}' http://example.com/`
if [ '$STATUS' != '200' ]
then
echo 'site appears to be down'
fi

4. ईमेल के माध्यम से डिस्क स्थान रिपोर्ट

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

वैकल्पिक लक्ष्य ईमेल पता सेट करने के लिए, निम्न प्रारूप का उपयोग करें:

MAILTO=user@example.com

आपको इसे एक ऐसी मशीन पर चलाना होगा जो आवश्यकता पड़ने पर बाहरी ईमेल भेजने के लिए सेट की गई हो। यहां एक उदाहरण दिया गया है जो उसी मशीन पर किसी अन्य उपयोगकर्ता को एक ईमेल भेजेगा। यह दिन में दो बार 12:00 और 23:00 बजे चलती है। NS डीएफ कमांड मुक्त डिस्क स्थान प्रदर्शित करता है, इसलिए यह क्रॉस्टैब प्रविष्टि यह जांचने का कार्य दर्शाती है कि डिस्क स्थान ठीक दिखता है:

MAILTO='sarah'
0 12,23 * * * /bin/df -h

परिणामी ईमेल कुछ इस तरह दिखेगा:

ध्यान दें कि क्रॉन अपने स्वयं के कस्टम ईमेल हेडर जोड़ता है। ये डिबगिंग के लिए उपयोगी हो सकते हैं। आप खाली स्ट्रिंग का उपयोग करके क्रॉन के डिफ़ॉल्ट ईमेल व्यवहार को अक्षम भी कर सकते हैं:

MAILTO=''

5. विशिष्ट समय पर संदेश प्रसारित करें

अन्य उदाहरण काफी सीधे शेड्यूलिंग का उपयोग करते हैं, लेकिन क्रोन समय विनिर्देशों के लिए एक शक्तिशाली सिंटैक्स का समर्थन करता है। यह न केवल सटीक मिलानों को संभालता है, बल्कि:

  • अल्पविराम द्वारा अलग किए गए अनेक मान ( , )
  • हाइफ़न के साथ निर्दिष्ट श्रेणियां ( - )
  • फ़ॉरवर्ड स्लैश के बाद चरण मान ( / )

इसलिए, उदाहरण के लिए, यदि आप काम के घंटों के दौरान सभी लॉग-इन उपयोगकर्ताओं को एक घंटे में दो बार संदेश भेजना चाहते हैं, लेकिन केवल हर तीन घंटे में, निम्न जैसा कुछ पर्याप्त होगा:

0 15,45 9-17/3 ? * * * echo 'Enjoy your work!' | wall

यह कमांड हर तीन घंटे में सुबह 9 बजे से शाम 5 बजे तक 15 बजकर 45 मिनट पर अमल करेगा। वॉल कमांड प्रत्येक लॉग-इन टर्मिनल उपयोगकर्ता को एक संदेश भेजता है।

आप यह भी पा सकते हैं कि क्रॉन आपके कैलेंडर ऐप की तुलना में अधिक लचीला शेड्यूलिंग प्रदान करता है। कुछ बदलाव आपको एक महीने के दूसरे शुक्रवार को या किसी निश्चित तिथि के निकटतम कार्यदिवस पर निष्पादित करने के लिए आदेश निर्दिष्ट करने की अनुमति देते हैं।

क्रोन कई प्रकार के लिनक्स कार्यों को स्वचालित कर सकता है

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

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

साझा करना साझा करना कलरव ईमेल Linux में दोहराए जाने वाले कार्यों को स्वचालित करने के लिए Crontab का उपयोग कैसे करें

समय बचाना चाहते हैं और Linux में प्रमुख प्रक्रियाओं को स्वचालित करना चाहते हैं? क्रोंटैब जवाब है।

आगे पढ़िए
संबंधित विषय
  • लिनक्स
  • कंप्यूटर स्वचालन
  • कार्य स्वचालन
  • लिनक्स कमांड
लेखक के बारे में बॉबी जैक(58 लेख प्रकाशित)

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

विंडोज़ 10 को विंडोज़ विस्टा की तरह कैसे बनाएं?
बॉबी जैक . की अन्य फ़िल्में-टीवी शो

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

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

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