संपादित 19 घंटे पहले द्वारा ExtremeHow संपादकीय टीम
स्वचालनअनुसूची निर्माणकमांड लाइनकार्य प्रबंधनस्क्रिप्टप्रणाली रखरखावतारीख/समय प्रबंधनउपयोगिताएँस्क्रिप्टिंगसिस्टम एडमिन
अनुवाद अपडेट किया गया 19 घंटे पहले
क्रॉन जॉब्स लिनक्स में कार्यों को अनुसूचित करने के लिए एक बहुत शक्तिशाली और लचीली प्रणाली है। वे आपको अपने सर्वर पर प्रक्रियाएं, दिनचर्या या स्क्रिप्ट स्वचालित करने की अनुमति देते हैं। कल्पना करें कि आप अपने बैकअप को स्वचालित कर सकते हैं, सिस्टम स्थिति की जांच कर सकते हैं, अस्थायी फ़ाइलों को साफ कर सकते हैं या आवर्ती ईमेल भेज सकते हैं बिना इन कार्यों को मैन्युअल रूप से करने के लिए याद रखने की आवश्यकता के। क्रॉन जॉब्स निर्धारित समय पर पृष्ठभूमि में चलते हैं। क्रॉन का उपयोग न केवल आपके प्रयास को बचा सकता है बल्कि आपके कार्य के कीमती घंटों को भी बचा सकता है और समग्र प्रणाली की दक्षता को बढ़ा सकता है।
क्रॉन डेमॉन एक पृष्ठभूमि प्रक्रिया है जो लिनक्स में क्रॉन जॉब्स को प्रबंधित करता है। क्रॉन जॉब्स के काम करने के लिए, क्रॉन डेमॉन को आपके सिस्टम पर चलना चाहिए। अधिकांश लिनक्स वितरण पहले से ही क्रॉन के साथ आते हैं। हालांकि, यदि यह स्थापित नहीं है, तो आप इसे अपने पैकेज मैनेजर का उपयोग करके स्थापित कर सकते हैं।
यहां बताया गया है कि इसे विभिन्न वितरणों पर कैसे करें:
Debian/Ubuntu आधारित सिस्टम:sudo apt-get update sudo apt-get install cron
Red Hat/CentOS आधारित सिस्टम:sudo yum update sudo yum install cronie
स्थापित होने के बाद, आप निम्नलिखित का उपयोग करके क्रॉन सेवा शुरू कर सकते हैं:
sudo systemctl start cron
यह सुनिश्चित करें कि यह बूट पर शुरू होता है, इसे सक्षम करके:
sudo systemctl enable cron
क्रॉन जॉब्स क्रॉनटैब नामक फ़ाइल में परिभाषित किए जाते हैं। प्रत्येक उपयोगकर्ता का अपना क्रॉनटैब हो सकता है, और एक प्रणाली-व्यापी क्रॉनटैब फ़ाइल भी है। क्रॉनटैब फ़ाइल प्रत्येक क्रॉन जॉब के लिए अनुसूची और कमांड को परिभाषित करती है। आप `crontab -e` कमांड का उपयोग करके एक उपयोगकर्ता क्रॉनटैब को संपादित कर सकते हैं। यह क्रॉनटैब फ़ाइल को डिफ़ॉल्ट सिस्टम संपादक में खोलता है।
क्रॉनटैब फ़ाइल में पंक्तियाँ होती हैं जिनमें से प्रत्येक एक निर्धारित कार्य का प्रतिनिधित्व करती है, एक विशिष्ट वाक्य रचना में परिभाषित होती है। एक सामान्य क्रॉन जॉब प्रविष्टि इस प्रकार दिखाई देती है:
* * * * * /path/to/command
प्रत्येक फ़ील्ड को एक स्पेस द्वारा अलग किया जाता है और एक अलग समय इकाई का प्रतिनिधित्व करता है:
कमांड स्वयं इन समय विनिर्देशों का पालन करती है और यह परिभाषित करती है कि कौन सा कार्य निष्पादित किया जाएगा।
चलो कुछ उदाहरणों को देखें ताकि यह समझने में मदद मिले कि एक क्रॉन जॉब शेड्यूल कैसे काम करता है।
0 2 * * * /path/to/backup.sh
0 * * * * /usr/local/bin/logrotate
0 0 * * 0 /usr/local/bin/maintenance
0 12 1 * * /usr/local/bin/generate-report
क्रॉन कई मानों या अंतराल को परिभाषित करने के लिए कॉमा, हाइफ़न और स्लैश जैसे ऑपरेटरों का उपयोग करने का समर्थन करता है।
0 1,3 * * * /path/to/script
*/1 5 1-10 * * /path/to/task
*/30 * * * * /path/to/half-hourly-task
क्रॉन जॉब अपने स्वयं के सीमित पर्यावरण में चलती है, और कभी-कभी, इसका आपके उपयोगकर्ता शेल के समान सेटिंग्स नहीं होता है। अक्सर, स्क्रिप्ट को सही ढंग से निष्पादित करने के लिए क्रॉनटैब फ़ाइल में पर्यावरण चर को सेट करना आवश्यक होता है। उदाहरण के लिए, PATH चर को सेट करना आम है:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin * * * * * /path/to/myjob
डिफ़ॉल्ट रूप से, क्रॉन उपयोगकर्ता को मेल भेजता है जो क्रॉन जॉब चलाता है, जिसमें जॉब द्वारा उत्पन्न कोई आउटपुट होता है। यदि आप मेल द्वारा आउटपुट प्राप्त नहीं करना चाहते हैं या आप इसे लॉग करना चाहते हैं, तो आप आउटपुट को एक फाइल में रीडायरेक्ट कर सकते हैं।
यहां बताया गया है कि आप मानक आउटपुट और त्रुटि कैसे रीडायरेक्ट कर सकते हैं:
* * * * * /path/to/script > /path/to/logfile 2>&1
यह उदाहरण आउटपुट और कोई भी त्रुटि संदेश लॉग फ़ाइल में भेजता है।
`क्रॉनटैब` कमांड क्रॉन जॉब्स स्थापित करने का प्राथमिक तरीका है। यहां सबसे अधिक उपयोग किए जाने वाले विकल्प हैं:
क्रॉनटैब -e
: अपने उपयोगकर्ता की क्रॉनटैब को संपादित करें।क्रॉनटैब -l
: अपने उपयोगकर्ता की क्रॉन जॉब्स की सूची दें।क्रॉनटैब -r
: अपने उपयोगकर्ता की क्रॉनटैब को हटाएं।क्रॉनटैब -u username -e
: यदि आपके पास अनुमति हो, तो दूसरे उपयोगकर्ता की क्रॉनटैब को संपादित करें।मूल संचालन के अलावा, आप क्रॉन जॉब्स की शक्ति को अधिक उपयोग करने के लिए उन्नत उपयोग पैटर्न भी कर सकते हैं।
कभी-कभी, आप कुछ कार्यों को केवल तभी चलाना चाहते हैं जब कोई अन्य सफलतापूर्वक पूरा हो जाए। ऐसे मामलों में, स्क्रिप्टिंग बचाव में आती है। आप एक मास्टर स्क्रिप्ट बना सकते हैं जो पहले एक स्क्रिप्ट को कॉल करता है और फिर दूसरे को, निकासी की स्थिति या अपेक्षित परिणामों की जांच करता है।
#!/bin/bash if /path/to/first-script; then /path/to/second-script fi
इस मास्टर स्क्रिप्ट को अपनी क्रॉनटैब में रखें, और आपने प्रभावी रूप से दोनों कार्यों को जोड़ दिया है।
कभी-कभी, आप एक अस्थायी क्रॉनटैब फ़ाइल का उपयोग करने के लिए पाते हैं, खासकर स्क्रिप्टिंग परिदृश्यों में। आप एक क्रॉनटैब फ़ाइल बना सकते हैं और इसे `क्रॉनटैब` कमांड के साथ निम्नानुसार उपयोग कर सकते हैं:
क्रॉनटैब mycronfile
यह कमांड उपयोगकर्ता के क्रॉन जॉब्स को mycronfile
की सामग्री के आधार पर सेट करता है।
व्यक्तिगत क्रॉनटैब के अलावा, एक प्रणाली क्रॉनटैब फ़ाइल भी है जो सभी उपयोगकर्ताओं के लिए जॉब्स को निर्धारित करती है। यह /etc/crontab
में स्थित है। यहां, जॉब्स कमांड से पहले एक अतिरिक्त क्षेत्र होता है, जो यह निर्दिष्ट करता है कि स्क्रिप्ट किस उपयोगकर्ता के तहत चलेगी। सामान्य प्रणाली रखरखाव स्क्रिप्ट यहां मिल सकते हैं।
/etc/crontab * * * * * user /path/to/command
इसके अलावा, जैसे /etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
, और /etc/cron.monthly
निर्देशिकाएं अपने संबंधित समय पर निष्पादित होती हैं, और यह प्रणाली कॉन्फ़िगरेशन द्वारा प्रबंधित होती है।
क्रॉनटैब पांच क्षेत्रों के बजाय विशेष स्ट्रिंग का भी समर्थन करता है:
0 0 1 1 *
।0 0 1 * *
।0 0 * * 0
।0 0 * * *
।0 * * * *
।ये कीवर्ड सामान्य प्रोग्राम्स को निर्धारित करने में आसान बनाते हैं।
जब क्रॉन जॉब्स का संबंध हो, तो सुरक्षा एक महत्वपूर्ण विचार है। क्रॉन सुविधा तक पहुंच के साथ उपयोगकर्ता अपनी जॉब्स बना सकते हैं, जो प्रणाली के साथ इंटरैक्ट कर सकते हैं। /etc/cron.allow
और /etc/cron.deny
फाइलें उस प्रबंध में कर सकती हैं कि कौन से उपयोगकर्ता क्रॉन का उपयोग करने का विशेषाधिकार रखते हैं।
डिफ़ॉल्ट रूप से, यदि /etc/cron.allow
मौजूद है, तो इसे उपयोगकर्ता के नाम को शामिल करना चाहिए ताकि उन्हें क्रॉन तक पहुंच की अनुमति हो। अन्यथा, यदि /etc/cron.deny
मौजूद है, तो इसे उपयोगकर्ता का नाम शामिल नहीं करना चाहिए ताकि पहुंच की अनुमति हो। यदि ये फाइलें मौजूद नहीं हैं, तो आमतौर पर केवल रूट शेड्यूल करने का क्रॉन जॉब्स कर सकता है।
यदि कमांड वाक्य रचना गलत है या पर्यावरणीय परिस्थितियों को पूरा नहीं किया जाता है, तो क्रॉन जॉब्स गलतियाँ पैदा कर सकते हैं। यहाँ कुछ तरीके हैं क्रॉन जॉब्स का परीक्षण और समस्या समाधान करने के।
अपने कमांड को मैन्युअल रूप से टर्मिनल में परीक्षण करें ताकि यह सुनिश्चित करें कि यह अपेक्षित रूप से काम करता है, क्योंकि क्रॉन इंटरैक्टिव प्रॉम्प्ट प्रदान नहीं करेगा।
समय-समय पर क्रॉन जॉब को हर मिनट सेट करें ताकि यह सुनिश्चित करें कि यह सही तरीके से चलता है।
* * * * * /path/to/command
आप क्रॉन डेमॉन की लॉग की जाँच कर सकते हैं किसी भी समस्या के लिए। यह लॉग फ़ाइल आमतौर पर यहां स्थित होती है:
/var/log/cron /var/log/syslog (वितरण के आधार पर)
यह लॉग यह निर्धारित करने में मदद कर सकता है कि क्या क्रॉन जॉब निष्पादित किया गया था या यदि इसे कोई त्रुटि मिली।
जैसा कि पहले उल्लेख किया गया है, आउटपुट को फ़ाइल में रीडायरेक्ट करना जांच के लिए त्रुटि संदेशों को कैप्चर करने में मदद कर सकता है।
क्रॉन लिनक्स सिस्टम पर एक मौलिक उपकरण है, जो विश्वसनीयता और लचीलेपन के साथ स्वचालित कार्य शेड्यूलिंग प्रदान करता है। क्रॉन जॉब्स के वाक्य, पर्यावरण और विन्यास को समझकर, आप नियमित कार्यों का प्रभावी ढंग से प्रबंधन कर सकते हैं, इस प्रकार अपने कार्य प्रक्रियाओं को अनुकूलित कर सकते हैं। चाहे आप एक सिस्टम व्यवस्थापक हों या डेवलपर, क्रॉन जॉब्स में महारत हासिल करना आपके उत ्पादकता को काफी हद तक बढ़ा सकता है।
उम्मीद है, यह विस्तृत गाइड आपको क्रॉन जॉब्स का प्रभावी ढंग से उपयोग करने में मदद करेगा। शेड्यूलिंग का आनंद लें!
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं