क्रॉन एक्सप्रेशन जनरेटर और पार्सर
किसी भी क्रॉन एक्सप्रेशन को पेस्ट करें और उसे सरल हिंदी में समझाया हुआ, अगले रन समय के साथ देखें, या
नीचे दिए ड्रॉपडाउन से एक बनाएँ। रेंज, स्टेप, सूची, महीने/सप्ताह-दिन के नाम और
@daily-शैली के मैक्रो — सब समर्थित हैं। सब कुछ आपके ब्राउज़र में चलता है — कुछ भी अपलोड नहीं होता।
Every 15 minutes.
ड्रॉपडाउन से बनाएँ
यह टूल कैसे काम करता है
बॉक्स में कोई क्रॉन एक्सप्रेशन टाइप या पेस्ट करें और टाइप करना रुकते ही उसे पार्स कर दिया जाता है: पाँचों फ़ील्ड वैलिडेट होते हैं, एक पढ़ने-योग्य वाक्य में बदले जाते हैं, और आगामी समय की गणना में इस्तेमाल होते हैं जब जॉब चलेगी — सब आपके ब्राउज़र में, बिना किसी सर्वर राउंड-ट्रिप के। शुरू से बनाना चाहते हैं? ड्रॉपडाउन से बनाएँ खोलें, एक आवृत्ति चुनें, और आपके लिए एक मान्य एक्सप्रेशन बॉक्स में लिख दिया जाता है। प्रीसेट बटन सबसे आम शेड्यूल एक क्लिक में भर देते हैं।
पाँच क्रॉन फ़ील्ड
| स्थान | फ़ील्ड | अनुमत मान | विशेष वर्ण |
|---|---|---|---|
| 1 | मिनट | 0–59 | * , - / |
| 2 | घंटा | 0–23 | * , - / |
| 3 | महीने का दिन | 1–31 | * , - / |
| 4 | महीना | 1–12 या JAN–DEC | * , - / |
| 5 | सप्ताह का दिन | 0–7 या SUN–SAT (0 और 7 = रविवार) | * , - / |
विशेष वर्ण
| प्रतीक | अर्थ | उदाहरण |
|---|---|---|
* | फ़ील्ड का हर मान। | घंटा फ़ील्ड में * = हर घंटा |
, | विशिष्ट मानों की सूची। | 1,15,30 = मिनट 1, 15 और 30 पर |
- | मानों की समावेशी रेंज। | घंटे में 9-17 = सुबह 9 से शाम 5 बजे तक |
/ | एक स्टेप — रेंज की शुरुआत से "हर n"। | */15 = हर 15 मिनट; 5/20 = 5, 25, 45 |
आम क्रॉन एक्सप्रेशन
| एक्सप्रेशन | अर्थ |
|---|---|
*/15 * * * * | हर 15 मिनट |
0 * * * * | हर घंटे की शुरुआत में |
30 2 * * * | हर दिन 02:30 बजे |
0 9 * * 1-5 | कार्यदिवसों (सोम–शुक्र) में 09:00 बजे |
0 0 1 * * | हर महीने की पहली तारीख़ को आधी रात |
0 0 * * 0 | हर रविवार आधी रात |
0 22 * * 1-5 | कार्यदिवसों में 22:00 बजे |
0 0 1 1 * | 1 जनवरी को आधी रात (वार्षिक) |
शॉर्टकट मैक्रो
कई क्रॉन कार्यान्वयन पाँच फ़ील्ड के स्थान पर कुछ नामित शॉर्टकट स्वीकार करते हैं। यह टूल पार्स करने से पहले उन्हें विस्तृत कर देता है, इसलिए वे समकक्ष एक्सप्रेशन की तरह ही समझाए और शेड्यूल किए जाते हैं:
| मैक्रो | समकक्ष |
|---|---|
@yearly / @annually | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily / @midnight | 0 0 * * * |
@hourly | 0 * * * * |
महीने-का-दिन / सप्ताह-का-दिन वाली उलझन
सबसे आम क्रॉन ग़लती यह मान लेना है कि महीने-का-दिन और सप्ताह-का-दिन दोनों सेट करने का मतलब है
"दोनों मेल खाने चाहिए"। ऐसा नहीं है। जब कोई फ़ील्ड सादा * नहीं है, तो क्रॉन तब चलती है
जब इनमें से कोई एक मेल खाए। उदाहरण के लिए 0 0 13 * 5 हर महीने की 13
तारीख़ को आधी रात और हर शुक्रवार को चलती है — केवल शुक्रवार 13 को नहीं। किसी एक सप्ताह-दिन को
लक्षित करने के लिए महीने-का-दिन * रखें; किसी एक तारीख़ को लक्षित करने के लिए सप्ताह-का-दिन
* रखें। ऊपर की व्याख्या जान-बूझकर "or" लिखती है जब दोनों फ़ील्ड सेट हों, ताकि जॉब तैनात
करने से पहले आप यह जाल पहचान सकें।
क्रॉन एक्सप्रेशन कहाँ इस्तेमाल होते हैं
वही पाँच-फ़ील्ड सिंटैक्स Unix/Linux crontab जॉब, Kubernetes में कंटेनरीकृत
CronJob संसाधन, CI/CD शेड्यूल (GitHub Actions, GitLab CI), सर्वरलेस शेड्यूलर
(AWS EventBridge आदि पर क्रॉन-शैली ट्रिगर), और असंख्य टास्क रनर तथा एप्लिकेशन फ़्रेमवर्क चलाता है।
चूँकि यह नोटेशन साझा है, एक क्रॉन लाइन को एक नज़र में पढ़ पाना — और ठीक-ठीक पुष्टि करना कि वह कब चलेगी —
एक सचमुच पोर्टेबल कौशल है। ध्यान दें कि कुछ सिस्टम सामने सेकंड के लिए छठा फ़ील्ड, या अंत में एक वर्ष
फ़ील्ड जोड़ते हैं; यह टूल क्लासिक पाँच-फ़ील्ड रूप को पार्स करता है।
अक्सर पूछे जाने वाले सवाल
- क्रॉन एक्सप्रेशन के पाँच फ़ील्ड कौन-से हैं?
- एक मानक क्रॉन एक्सप्रेशन में पाँच स्पेस-विभाजित फ़ील्ड होते हैं, बाएँ से दाएँ पढ़े जाते हैं: मिनट (0–59), घंटा (0–23), महीने का दिन (1–31), महीना (1–12), और सप्ताह का दिन (0–7, जहाँ 0 और 7 दोनों का मतलब रविवार है)। हर फ़ील्ड एक अकेला मान, कॉमा-विभाजित सूची, हाइफ़न वाली रेंज, स्लैश से लिखा गया स्टेप, या "हर मान" के अर्थ वाला तारांकन (*) स्वीकार करता है। शेड्यूल तब चलती है जब वर्तमान समय हर फ़ील्ड से मेल खाए। महीना और सप्ताह-दिन को तीन-अक्षर के नामों जैसे JAN या MON के रूप में भी लिखा जा सकता है।
- क्रॉन एक्सप्रेशन में */5 का क्या मतलब है?
- स्लैश एक स्टेप मान लाता है, इसलिए मिनट फ़ील्ड में */5 का मतलब है "हर 5वाँ मिनट" — यानी मिनट 0, 5, 10, 15 इत्यादि पर। स्लैश से पहले का हिस्सा शुरुआती बिंदु और रेंज तय करता है: */5 शून्य से शुरू होता है, जबकि 5/15 मिनट 5 से शुरू होकर हर बार 15 जोड़ता है (5, 20, 35, 50)। स्टेप को रेंज के साथ भी जोड़ा जा सकता है — घंटा फ़ील्ड में 9-17/2 सुबह 9 से शाम 5 बजे के बीच हर दो घंटे में चलता है।
- महीने-का-दिन और सप्ताह-का-दिन अप्रत्याशित रूप से क्यों आपस में क्रिया कर सकते हैं?
- जब महीने-का-दिन और सप्ताह-का-दिन दोनों फ़ील्ड प्रतिबंधित हों (कोई भी सादा तारांकन न हो), तो क्रॉन जॉब तब चलाती है जब इनमें से कोई एक मेल खाए, दोनों नहीं। इसलिए 0 0 13 * 5 का मतलब है "महीने की 13 तारीख़ को आधी रात, और साथ ही हर शुक्रवार को" — केवल शुक्रवार 13 को नहीं। यदि आपको ऐसी जॉब चाहिए जो केवल किसी विशिष्ट सप्ताह-दिन पर चले, तो महीने-का-दिन को * रखें; यदि किसी विशिष्ट तारीख़ पर चाहिए, तो सप्ताह-का-दिन को * रखें। यह पार्सर उसी मानक OR व्यवहार का पालन करता है, और सरल-हिंदी व्याख्या "or" कहती है ताकि यह जाल दिखाई दे।
- "अगले रन समय" किस टाइमज़ोन में दिखाए जाते हैं?
- अगले रन समय आपके अपने डिवाइस के स्थानीय टाइमज़ोन में गणना किए जाते हैं, क्योंकि अधिकांश लोग यही देखना चाहते हैं और इसके लिए किसी सर्वर की ज़रूरत नहीं। इसके विपरीत, एक असली क्रॉन डीमन उसी टाइमज़ोन में चलता है जिसके लिए सर्वर कॉन्फ़िगर हो (अक्सर UTC)। यदि आपका सर्वर कोई अलग टाइमज़ोन इस्तेमाल करता है, तो यहाँ दिखाए गए समय को मन में समायोजित कर लें, या सर्वर/शेड्यूलर को अपने टाइमज़ोन पर सेट करें। गणना पूरी तरह आपके ब्राउज़र में होती है — एक्सप्रेशन कहीं नहीं भेजा जाता।
- क्या यह @daily, @hourly और अन्य शॉर्टकट समर्थित करता है?
- हाँ। नामित मैक्रो @yearly (और इसका उपनाम @annually), @monthly, @weekly, @daily (और इसका उपनाम @midnight) और @hourly पार्स करने से पहले उनके पाँच-फ़ील्ड समकक्षों में विस्तृत कर दिए जाते हैं, इसलिए उन्हें एक सामान्य एक्सप्रेशन की तरह ही समझाया और शेड्यूल किया जाता है। @reboot पहचाना जाता है पर उसका कोई निश्चित शेड्यूल नहीं है — यह सिस्टम शुरू होते ही एक बार चलता है — इसलिए उसके लिए कोई रन समय सूचीबद्ध नहीं किया जा सकता।
- क्या मेरा क्रॉन एक्सप्रेशन किसी सर्वर पर भेजा जाता है?
- नहीं। पार्सिंग, सरल-हिंदी व्याख्या और अगले-रन की गणना सभी आपके ब्राउज़र में सादे JavaScript से स्थानीय रूप से चलती हैं। कुछ भी अपलोड या संग्रहीत नहीं होता, इसलिए इसे आंतरिक जॉब शेड्यूल के साथ इस्तेमाल करना सुरक्षित है, और पेज लोड होने के बाद यह ऑफ़लाइन भी काम करता है।