Crontab का उपयोग करते हुए नौकरी शेड्यूलिंग, उस समय कंप्यूटर बंद होने पर क्या होगा?


85

मैं कुछ कार्यों को क्रॉस्टैब का उपयोग करके निर्धारित करता हूं।

यदि मेरा कंप्यूटर उस समय बंद हो जाता है या बंद हो जाता है जब क्रोन कुछ करने के लिए निर्धारित किया गया था तो क्या होगा?

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


3
मैंने वेब में एनाक्रॉन ट्यूटोरियल की तलाश की लेकिन किसी अच्छे को नहीं खोज सका। मैन पेज में देख कर भी मुझे ज्यादा मदद नहीं मिली। मैं पहले से मौजूद crontab को कैसे बदल सकता हूं ताकि यह एनाक्रोन में बदल जाए ?? या इसमें कोई भी ट्यूटोरियल बहुत उपयोगी होगा
seg.server.fault

1
मैंने कुछ उदाहरणों को शामिल करने के लिए अपना उत्तर संपादित किया है। मुझे आशा है कि वह मदद करेंगे!
jeff

जवाबों:


70

जब आपका कंप्यूटर बंद हो जाता है (या क्रोन डेमॉन अन्यथा नहीं चल रहा है), क्रोन नौकरियों को शुरू नहीं किया जाएगा।

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

Ubuntu cacabab प्रविष्टियों के लिए डिफ़ॉल्ट रूप से एनाक्रॉन का उपयोग करता है:

/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

विशेष रूप से मुख्य क्रोन डेमॉन द्वारा नियंत्रित किए जाने वाले शेष क्रैब्स को छोड़ना:

/etc/crontab
/etc/cron.d
/var/spool/cron

टिप्पणियाँ

एनाक्रॉन खुद एक डेमॉन के रूप में नहीं चलता है, लेकिन सिस्टम स्टार्टअप स्क्रिप्ट पर निर्भर करता है और चलाने के लिए क्रोन खुद करता है।

उबंटू 8.04 बॉक्स पर मैं देख रहा हूँ, /etc/init.d/anacron बूट पर चलाया जाता है, और फिर से हर सुबह 07:30 बजे क्रॉन द्वारा।

README पर /usr/share/doc/anacron/README.gz की तुलना में थोड़ी अधिक जानकारी है जो मैनपावर में निहित है।

उदाहरण

सरल "दैनिक", "साप्ताहिक", "मासिक" नौकरियों के लिए, ऊपर दिए गए /etc/cron.ellingdailyiqueweeklypgmonthly} निर्देशिकाओं में से किसी एक में स्क्रिप्ट की एक प्रति या एक सिम्लिंक डाल दें। एनाक्रॉन इसे दैनिक / साप्ताहिक / मासिक रूप से चलाने का ध्यान रखेगा, और यदि आपका कंप्यूटर उस दिन बंद है, तो "साप्ताहिक" स्क्रिप्ट सामान्य रूप से चलेगी, तो यह अगली बार जब कंप्यूटर चालू होता है, तो उन्हें चलाएगा।

एक अन्य उदाहरण के रूप में, मान लें कि आपके पास यहां एक स्क्रिप्ट है: /usr/local/sbin/maint.sh

और आप इसे हर तीन दिनों में चलाना चाहते हैं, / etc / crontab में मानक प्रविष्टि इस तरह दिखाई देगी:

# m h dom mon dow user  command
0 0 */3 * * root /usr/local/sbin/maint.sh

यदि आपका कंप्यूटर महीने की 3 तारीख को 00:00 बजे नहीं था, तो 6 वीं तक नौकरी नहीं चलेगी।

जब कंप्यूटर बंद हो, तो 4 वीं पर काम चलाने के बजाय, 3 पर रन को "मिस" कर दें, आप इसे / etc / anacrontab में उपयोग करेंगे (लाइन को / etc / crontab से हटाना न भूलें):

# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh

उपरोक्त "5" की "देरी" का अर्थ है कि यह काम चलाने से पहले एनाक्रॉन 5 मिनट तक इंतजार करेगा। यह विचार है कि बूट समय पर एनाक्रॉन को तुरंत बंद करने वाली चीजों को रोकने के लिए।


5
डिफ़ॉल्ट रूप से उबंटू एनाक्रॉन का उपयोग करता है।
3dinfluence

1
धन्यवाद, 3dincluence - समायोजित उत्तर यह इंगित करने के लिए कि कौन से क्रॉस्टैब को डिफ़ॉल्ट ubuntu सेटिप में एनाक्रॉन द्वारा नियंत्रित किया जाता है।
jeff

2
यदि आप स्क्रिप्ट को /etc/cron.*/ में डालते हैं, तो इसके स्वयं के कॉन्ट्राब प्रविष्टि के बजाय, "" नहीं है। स्क्रिप्ट के नाम में। debian और ubuntu इस तरह की स्क्रिप्ट को चलाने के लिए रन-पार्ट्स का उपयोग करते हैं, और डिफ़ॉल्ट रूप से रन-पार्ट्स एक के साथ फाइलों को अनदेखा कर देंगे। फ़ाइल नाम में - यह इसलिए है कि यह .dpkg-old और .dpkg-dist-स्क्रिप्ट के संस्करणों को नहीं चलाता है जिन्हें नवीनीकरण से नाम दिया गया है। इसलिए स्क्रिप्ट या सिमलिंक को "maint.sh" के बजाय "maint" कहें।
कैस

OpenSUSE 11.2 आगे (वर्तमान में Tumbleweed / लीप 42.2) से डिफ़ॉल्ट रूप से क्रोनी का उपयोग करता है । उपयोग करने के लिए anacron, cronie-anacronपैकेज स्थापित करें ।
पलसीम

13

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


5

जब कंप्यूटर बंद हो जाता है तब कंप्यूटर बंद होने पर कार्य शेड्यूल नहीं किया जाता है


2

यदि आप क्रॉन जॉब्स चलाने के दौरान शटडाउन करते हैं, तो सिस्टम बंद हो जाता है और क्रोन जॉब्स रुक जाते हैं (या नहीं चलते हैं)।

एक विकल्प जिसे आप देख सकते हैं वह एनाक्रॉन है।


2

वास्तव में आपके द्वारा चलाए जा रहे क्रोन डेमोन पर निर्भर करता है। विक्सी-क्रोन सिर्फ उन क्रोनॉजर्स को छोड़ देगा जो छूट गए थे। fcron जैसे ही मिस्ड क्रोन चलाएगा। IIRC यह vixie-cron पर भी आधारित है, इसलिए यदि आप जो देख रहे हैं वह है कि आप fron की जाँच कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.