tigtools

Cron एक्सप्रेशन समझाएँ

5-फ़ील्ड वाला cron शेड्यूल दर्ज करें और जानें कि इसका क्या मतलब है और यह अगली बार कब चलेगा। सारी गणना आपके ब्राउज़र में होती है।

आपके ब्राउज़र में चलता है साइन अप की ज़रूरत नहीं

पाँच फ़ील्ड: मिनट, घंटा, महीने का दिन, महीना, सप्ताह का दिन। @daily जैसे मैक्रो भी काम करते हैं।

आम शेड्यूल

अर्थ

हर 15 मिनट में, 09:00 से 17:59 के बीच, सोमवार से शुक्रवार तक को।

फ़ील्ड

मिनट
*/15
घंटा
9-17
महीने का दिन
*
महीना
*
सप्ताह का दिन
1-5
समय क्षेत्र

अगले 10 रन

    इस्तेमाल करने का तरीका

    1. cron एक्सप्रेशन लिखें या पेस्ट करें, या आम शेड्यूल में से कोई एक चुनें।
    2. इसका अर्थ सरल भाषा में पढ़ें। अमान्य फ़ील्ड के साथ उसका कारण भी बताया जाता है।
    3. आगे की 10 रन स्थानीय टाइम ज़ोन में देखें। अगर आपका सर्वर UTC पर चलता है, तो UTC पर स्विच करें।
    4. रन के समय साझा करने के लिए उन्हें कॉपी करें, या ज़रूरत के मुताबिक शेड्यूल बनाने के लिए एक्सप्रेशन में बदलाव करें।

    यह कैसे काम करता है

    Linux के crontab (Vixie cron और cronie) तथा कई CI और होस्टिंग शेड्यूलर में इस्तेमाल होने वाले सामान्य cron एक्सप्रेशन में स्पेस से अलग किए गए पाँच फ़ील्ड होते हैं: मिनट (0–59), घंटा (0–23), महीने का दिन (1–31), महीना (1–12 या JAN–DEC) और सप्ताह का दिन (0–7 या SUN–SAT, जहाँ 0 और 7 दोनों का मतलब रविवार है)। हर फ़ील्ड में हर मान के लिए *, एक मान, 1-5 जैसी रेंज, 1,15,30 जैसी सूची और */15 (हर 15वाँ मान) या 9-17/2 (9 से 17 तक हर दूसरा घंटा) जैसा स्टेप इस्तेमाल किया जा सकता है। नामों में बड़े-छोटे अक्षरों का फ़र्क नहीं होता। @yearly (या @annually), @monthly, @weekly, @daily (या @midnight) और @hourly शॉर्टकट क्रमशः 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * और 0 * * * * के लिए इस्तेमाल होते हैं।

    महीने के दिन और सप्ताह के दिन वाले फ़ील्ड एक ऐसे नियम का पालन करते हैं जो कई लोगों को चौंका देता है। अगर किसी एक फ़ील्ड की शुरुआत * से होती है, तो दिन को दोनों फ़ील्ड से मेल खाना चाहिए। अगर दोनों फ़ील्ड सीमित हैं, तो दिन इनमें से किसी एक से मेल खाने पर शेड्यूल से मेल खाता है: 0 0 13 * 5 हर महीने की 13 तारीख को और हर शुक्रवार को चलता है, सिर्फ़ शुक्रवार 13 तारीख को नहीं। जाँच यह होती है कि फ़ील्ड की शुरुआत * से होती है या नहीं, इसलिए */2 जैसे स्टेप को भी बिना पाबंदी वाला माना जाता है। यह Vixie cron और cronie के व्यवहार से मेल खाता है; कुछ अन्य शेड्यूलर अलग तरीके से काम करते हैं।

    आगे चलने के समय की गणना आपके ब्राउज़र के टाइम ज़ोन में या UTC में होती है, जिसका इस्तेमाल ज़्यादातर सर्वर और क्लाउड शेड्यूलर करते हैं। Cron खुद उस मशीन का टाइम ज़ोन इस्तेमाल करता है जिस पर वह चलता है। डेलाइट सेविंग के बदलाव के दौरान असली cron डेमन अलग-अलग तरह से काम करते हैं; यह टूल घड़ी आगे होने पर मौजूद न रहने वाले स्थानीय समय छोड़ देता है और दोहराए जाने वाले घंटे को एक बार दिखाता है। विस्तारित सिंटैक्स समर्थित नहीं हैं: सेकंड या साल वाले छह या सात फ़ील्ड के Quartz एक्सप्रेशन और ?, L, W तथा # जैसे विशेष वर्ण।

    उदाहरण

    ऑफ़िस के समय में हेल्थ चेक

    */15 9-17 * * 1-5 का मतलब है सोमवार से शुक्रवार तक, 09:00 से 17:59 के बीच हर 15 मिनट में। हर दिन की आख़िरी रन 17:45 पर होती है।

    हर रात बैकअप

    30 2 * * * हर दिन 02:30 पर चलता है। अगर सर्वर UTC इस्तेमाल करता है और आप न्यूयॉर्क में हैं, तो UTC मोड में आगे की रन की सूची उन समयों को दिखाती है जिन्हें सर्वर वास्तव में इस्तेमाल करेगा।

    दिन वाले फ़ील्ड का पेच

    0 9 1 * 1 देखने में “महीने की पहली तारीख अगर सोमवार हो, तो 9:00 बजे” जैसा लगता है, लेकिन यह हर महीने की 1 तारीख को 09:00 बजे और हर सोमवार को भी चलता है। सिर्फ़ महीने के पहले सोमवार को चलाने के लिए 0 9 1-7 * * शेड्यूल करें और स्क्रिप्ट में सप्ताह का दिन जाँचें।

    अक्सर पूछे जाने वाले सवाल

    cron में */5 का क्या मतलब है?

    इसका मतलब है फ़ील्ड के सबसे छोटे मान से शुरू करके हर पाँचवाँ मान। मिनट वाले फ़ील्ड में, */5 मिनट 0, 5, 10 … 55 पर चलता है। घंटे वाले फ़ील्ड में, */5 का मतलब 0, 5, 10, 15 और 20 बजे है, इसलिए 20:00 से आधी रात तक का अंतर पाँच घंटे नहीं, चार घंटे है।

    मेरा जॉब मेरी उम्मीद से ज़्यादा दिनों में क्यों चलता है?

    जब महीने के दिन और सप्ताह के दिन वाले दोनों फ़ील्ड सीमित हों, तो cron उन दिनों चलता है जो इनमें से किसी एक से मेल खाते हैं। उदाहरण के लिए, 0 0 15 * 1 महीने की 15 तारीख को और हर सोमवार को चलता है। सिर्फ़ दूसरे फ़ील्ड के आधार पर चलाने के लिए इन दोनों में से एक फ़ील्ड को * पर सेट करें।

    cron कौन-सा टाइम ज़ोन इस्तेमाल करता है?

    cron डेमन चलाने वाले सर्वर का सिस्टम टाइम ज़ोन, जब तक कि crontab में CRON_TZ या TZ सेट न हो (cronie में समर्थित)। क्लाउड शेड्यूलर अक्सर डिफ़ॉल्ट रूप से UTC इस्तेमाल करते हैं। UTC सर्वर के समय देखने के लिए UTC स्विच का इस्तेमाल करें।

    क्या मैं सेकंड या साल वाला फ़ील्ड इस्तेमाल कर सकता हूँ?

    मानक cron में नहीं, जिसमें एक मिनट की सटीकता और पाँच फ़ील्ड होते हैं। सेकंड और साल वाले छह या सात फ़ील्ड के फ़ॉर्मैट Quartz, Spring और इसी तरह की लाइब्रेरी में इस्तेमाल होते हैं; यह टूल उन्हें सपोर्ट नहीं करता।

    रविवार के लिए 0 है या 7?

    दोनों। सप्ताह के दिन वाले फ़ील्ड में 0 और 7, दोनों का मतलब रविवार है; 1 सोमवार और 6 शनिवार है। आप SUN से SAT तक के तीन अक्षरों वाले नाम भी लिख सकते हैं।

    गोपनीयता

    एक्सप्रेशन को पार्स किया जाता है और रन के समय की गणना आपके ब्राउज़र में होती है। आपके द्वारा दर्ज की गई कोई भी जानकारी अपलोड या सेव नहीं की जाती और न ही एनालिटिक्स में शामिल होती है।