मुझे हर 30 मिनट में एक क्रोन जॉब कैसे मिलेगी?


224

मैं crontabहर 30 मिनट पर एक स्क्रिप्ट को निष्पादित करने के लिए एक प्रविष्टि जोड़ने के लिए देख रहा हूं , घंटे और 30 मिनट के घंटे या कुछ के करीब। मेरे पास निम्नलिखित हैं, लेकिन यह 0 पर नहीं चलता है।

*/30 * * * *

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

OSX पर क्रोन चल रहा है।


क्या आप काम करने के लिए अपने crontab पाने में सफल रहे हैं? हो सकता है कि आपकी समस्या क्रैस्टब न हो, लेकिन इसका उपयोग करने के लिए हो रही है।
एडी

यह 2 अन्य स्क्रिप्ट्स चला रहा है, हर एक मिनट।
डैरिल हेन

1
मैं यह देखने के लिए इंतजार कर रहा हूं कि क्या नीचे दिए गए उत्तरों में से एक काम करता है, बस अगले 30 मिनट तक इंतजार करना होगा ... 3 मिनट में।
डैरिल हेन

2
... क्या आप केवल 0,30 से 0,5 नहीं बदल सकते? अगर 0,5 काम करता है, तो 0,30 क्यों नहीं होगा?
जॉर्ज स्टॉकर

1
आपने हमें कभी नहीं बताया कि क्या यह घंटे पर काम करता है!
एडी

जवाबों:


487

करना:

0,30 * * * * your_command

1
बहुत अच्छा काम करता है! CentOS crontab में, मुझे कुछ ऐसा करना था जैसे 0,30 * * * * root your_commandरूट वह उपयोगकर्ता होगा जहां मैं उपयोग कर रहा हूं।
प्राग्रामर

@prograhammer - क्या यह रूट किसी रूट के क्रेस्टैब या किसी अन्य उपयोगकर्ता के क्रॉस्टैब का हिस्सा था?
मुहम्मद हुसैनबाईस

@ MuhamedHuseinbašić अच्छा सवाल है, क्योंकि वहाँ 2 अलग crontabs हैं (वैश्विक एक और फिर एक उपयोगकर्ता)। मुझे जांच करनी होगी और
देखनी होगी

100

crontab "अंतराल" को नहीं समझता है, यह केवल "अनुसूची" को समझता है

वैध घंटे: 0-23 - वैध मिनट: 0-59

उदाहरण 1

30 * * * * your_command

इसका अर्थ है "प्रत्येक घंटे का मिनट 30 होने पर चलाएं" (1:30, 2:30, 3:30, आदि पर चलेगा)

उदाहरण # 2

*/30 * * * * your_command

इसका अर्थ है "जब प्रत्येक घंटे का मिनट समान रूप से 30 से विभाज्य हो तो चलाएं" (1:30, 2:00, 2:30, 3:00, आदि पर चलेगा)

उदाहरण # 3

0,30 * * * * your_command

इसका अर्थ है "जब प्रत्येक घंटे का समय 0 या 30 है " चलाएं (1:30, 2:00, 2:30, 3:00, आदि पर चलेगा)

यह उदाहरण # 2 के समान परिणाम को पूरा करने का एक और तरीका है

उदाहरण # 4

19 * * * * your_command

इसका अर्थ है "जब प्रत्येक घंटे का समय 19 हो तो चलाएं" (1:19, 2:19, 3:19, आदि पर चलेगा)

उदाहरण # 5

*/19 * * * * your_command

इसका अर्थ है "जब हर एक मिनट 19 तक विभाज्य हो तो चलाएं" (1:19, 1:38, 1:57, 2:19, 2:38, 2:57 आदि)

नोट: लेखक सहित विभिन्न उपयोगकर्ताओं द्वारा इस पोस्ट के लिए कई परिशोधन किए गए हैं


76

इसे इस्तेमाल करे:

0,30 * * * * your command goes here

आधिकारिक Mac OS X crontab (5) मैनपेज के अनुसार , /सिंटैक्स समर्थित है। इस प्रकार, यह पता लगाने के लिए कि यह आपके लिए काम क्यों नहीं कर रहा है, आपको क्रोन के लिए लॉग देखने की आवश्यकता होगी। उन लॉग में, आपको एक स्पष्ट विफलता संदेश मिलना चाहिए

नोट: मैक ओएस एक्स विक्सी क्रोन, लिनक्स और बीएसडी के समान उपयोग करता है।


मैंने हमेशा सफलता के साथ * / 30 का उपयोग किया है, लेकिन मुझे मेरा एक आवेदन याद नहीं है, जहां यह बहुत महत्वपूर्ण था अगर यह केवल एक घंटे में एक बार चलता है तो मुझे नहीं लगता कि मैंने कभी जांच की है।
एडम हॉज

2
@ एडम हेस: मैंने अतीत में सफलता के साथ * / xx का भी उपयोग किया है, लेकिन लिनक्स और अन्य यूनिक्स पर। मैंने व्यक्तिगत रूप से मैक OSX की कोशिश नहीं की है। मूल सवाल यह नहीं कहा गया कि कौन सा ओएस। कुछ पुराने UNIXes समर्थन नहीं करते * / xx
एडी

आपके उत्तर ने भी काम किया, लेकिन व्लाद के पास कम प्रतिनिधि हैं, इसलिए मैंने उसे अंक दिए।
डैरिल हेन

1
@DarrylHein lol, आज एडी के पास कम प्रतिनिधि हैं :- पी। मैंने एडी को उकसाया।
शुरुआती

10

यदि आपका क्रॉन जॉब केवल मैक ओएस एक्स पर चल रहा है, तो आप इसके बजाय लॉन्चड का उपयोग करना चाह सकते हैं।

से निर्धारण समयबद्ध नौकरियां (आधिकारिक एप्पल डॉक्स) :

नोट: हालांकि यह अभी भी समर्थित है, क्रोन एक अनुशंसित समाधान नहीं है। इसे लॉन्चड के पक्ष में हटा दिया गया है।

आप एक साधारण वेब खोज के साथ अतिरिक्त जानकारी (जैसे लॉन्च विकिपीडिया पृष्ठ ) पा सकते हैं ।


5

आप उल्लेख करते हैं कि आप ओएस एक्स का उपयोग कर रहे हैं- मैंने अतीत में क्रोनिक्स का उपयोग किया है। यह अपने आप को संपादित करने के रूप में geeky के रूप में नहीं है, लेकिन इससे मुझे यह जानने में मदद मिली कि स्तंभ एक पल में क्या हैं। सिर्फ एक विचार।


यह अन्यथा भी सहायक हो सकता है।
डैरिल हेन

3

आप दोनों ' , ' या विभाजित ' / ' प्रतीकों का उपयोग कर सकते हैं ।
लेकिन, ' / ' बेहतर है।
मान लीजिए 'हर 5 मिनट' का मामला। यदि आप ' , ' का उपयोग करते हैं , तो आपको निम्नलिखित के रूप में क्रॉन जॉब लिखना होगा:

0,5,10,15,20,25,30,35,....    *      *     *   * your_command

इसका मतलब है कि सभी परिभाषित मिनटों में हर घंटे में आपका_कम चलाएं: 0,5,10, ...

हालांकि, यदि आप '/' का उपयोग करते हैं, तो आप निम्नलिखित सरल और लघु नौकरी लिख सकते हैं:

*/5  *  *  *  *  your_command

इसका मतलब है कि आपके_मांड को उन मिनटों में चलाएं जो 5 या सरल शब्दों में विभाजित हैं, '0,5,10, ...'

इसलिए, विभाजित करने योग्य प्रतीक '/' हमेशा सबसे अच्छा विकल्प होता है;

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