देख रहे हैं: हिन्दी अंग्रेज़ी में देखें

cron एक्सप्रेशन व्याख्याकार

cron एक्सप्रेशन पेस्ट करें और सरल भाषा में उसका अर्थ पाएँ। मानक 5-फ़ील्ड और 6-फ़ील्ड (सेकंड सहित) cron दोनों सपोर्टेड हैं।

उदाहरण (आज़माने के लिए क्लिक करें)

  1. ऊपर इनपुट में cron एक्सप्रेशन टाइप या पेस्ट करें।
  2. नीचे दिखने वाली सरल-भाषा व्याख्या पढ़ें।
  3. किसी भी उदाहरण चिप पर क्लिक करें — वह इनपुट में चला जाएगा और उसकी व्याख्या दिख जाएगी।
  4. लाल में दिखने वाली पार्स त्रुटि ठीक करते जाएँ, जब तक व्याख्या आपकी मंशा से मेल न खाए।
यह क्या करता है?

यह व्याख्याकार मानक Unix cron एक्सप्रेशन (5 फ़ील्ड) या सेकंड सहित Quartz शैली (6 फ़ील्ड) लेता है और "At 09:00 AM, Monday through Friday" जैसा मानवीय विवरण लौटाता है। यह सामान्य ऑपरेटर — *, ",", -, और / — के साथ-साथ नामवाले महीनों (JAN-DEC) और सप्ताह के दिनों (SUN-SAT) का भी समर्थन करता है। हर कीस्ट्रोक पर परिणाम अपडेट होता है, इसलिए आप तेज़ी से दोहराव कर सकते हैं।

उदाहरण

एक आम कार्यालय-समय वाला कार्य:

0 9 * * MON-FRI

व्याख्या:

सुबह 09:00, सोमवार से शुक्रवार तक

सेकंड सहित अधिक विशिष्ट 6-फ़ील्ड Quartz एक्सप्रेशन:

0 30 2 ? * MON

व्याख्या (हर सोमवार 02:30:00)।

cron प्रारूप

┌───────── मिनट (0 - 59)
│ ┌─────── घंटा (0 - 23)
│ │ ┌───── माह का दिन (1 - 31)
│ │ │ ┌─── महीना (1 - 12, या JAN-DEC)
│ │ │ │ ┌─ सप्ताह का दिन (0 - 6, या SUN-SAT; 0 और 7 दोनों का अर्थ रविवार है)
│ │ │ │ │
* * * * *

cron "0 0 * * *" मेरे स्थानीय समय के बजाय UTC आधी रात को क्यों चलता है?

असली cron बग अकसर इन कुछ जानी-पहचानी जालों से आते हैं:

  • समय-क्षेत्र खिसकाव। 0 0 * * * शेड्यूलर के समय-क्षेत्र के अनुसार आधी रात चलता है। Kubernetes CronJob और GitHub Actions में डिफ़ॉल्ट UTC है — spec.timeZone सेट करें, या घंटे को स्वयं UTC में बदलें।
  • 5-फ़ील्ड बनाम 6-फ़ील्ड का गड़बड़ मेल। 0 0 9 * * MON-FRI (6 फ़ील्ड) को 5-फ़ील्ड शेड्यूलर में डालने पर पहला 0 मिनट और दूसरा 0 घंटा माना जाता है, यानी कार्य 09:00 नहीं बल्कि आधी रात को चलता है।
  • day-of-month और day-of-week एक साथ। 0 0 15 * MON हर महीने की 15 तारीख और हर सोमवार दोनों को चलेगा — केवल उस सोमवार को नहीं जो 15 पड़े। यह Vixie-cron का OR नियम है।
  • step हर तैनाती पर फिर से शुरू नहीं होता। */10 * * * * घड़ी के :00, :10, :20, :30, :40, :50 पर चलता है — आपकी आख़िरी तैनाती के दस मिनट बाद नहीं।
  • मानक cron में ? का प्रयोग। ? प्लेसहोल्डर Quartz एक्सटेंशन है। Unix cron इसे अस्वीकार करता है — इसकी जगह * प्रयोग करें।
  • day-of-week 0 बनाम 7। क्लासिक cron में दोनों का अर्थ रविवार है, पर कुछ पार्सर (पुराना BSD) केवल 0 स्वीकार करते हैं। यदि पोर्टेबिलिटी ज़रूरी है तो SUN का प्रयोग करें।

ऑपरेटर

  • * — कोई भी मान
  • , — मानों की सूची (जैसे MON,WED,FRI)
  • - — रेंज (जैसे 1-5)
  • / — step मान (जैसे */15 = हर 15 पर)
अक्सर पूछे जाने वाले प्रश्न

5-फ़ील्ड और 6-फ़ील्ड cron में क्या अंतर है?

मानक POSIX cron में 5 फ़ील्ड होते हैं: मिनट, घंटा, माह का दिन, महीना, सप्ताह का दिन। 6-फ़ील्ड संस्करण सबसे आगे सेकंड जोड़ता है और इसे Quartz, Spring @Scheduled, तथा कई Node cron पुस्तकालय प्रयोग करते हैं। 6-फ़ील्ड "0 0 9 * * MON-FRI" कार्यदिवसों पर 9:00:00 चलता है, जबकि 5-फ़ील्ड "0 9 * * MON-FRI" 9:00 पर चलता है।

क्या यह L, W और # जैसे Quartz विस्तारों का समर्थन करता है?

यह व्याख्याकार आम Unix / Vixie cron बोली और उसमें वैकल्पिक प्रारंभिक सेकंड फ़ील्ड का समर्थन करता है। केवल Quartz वाले टोकन (अंतिम के लिए L, कार्यदिवस के लिए W, n-वें सप्ताह-दिन के लिए #, और ? प्लेसहोल्डर) मानक cron का हिस्सा नहीं हैं और उनकी पार्सिंग की गारंटी नहीं। यदि आप इन पर निर्भर हैं तो अपने शेड्यूलर के विशिष्ट दस्तावेज़ से एक्सप्रेशन सत्यापित करें।

0 0 * * * मेरी अपेक्षा से भिन्न समय पर क्यों चलता है?

cron एक्सप्रेशन में समय-क्षेत्र नहीं होता। कार्य उस मशीन या कंटेनर के समय-क्षेत्र में आधी रात चलता है जिस पर शेड्यूलर है। Kubernetes CronJob, GitHub Actions और AWS EventBridge में डिफ़ॉल्ट UTC है। यदि स्थानीय आधी रात चाहिए, तो शेड्यूलर का समय-क्षेत्र स्पष्ट रूप से सेट करें (CronJob का spec.timeZone, TZ env चर, cron.yaml की timezone कुंजी)।

क्या मैं day-of-month और day-of-week एक साथ संयोजित कर सकता/सकती हूँ?

मानक Vixie cron में, यदि day-of-month और day-of-week दोनों प्रतिबंधित हैं, तो किसी एक के मेल पर ही कार्य चल जाता है — यह AND नहीं बल्कि OR है। इसलिए "0 0 15 * MON" हर महीने की 15 तारीख और हर सोमवार दोनों को चलता है। Quartz इसे उलट देता है और स्पष्टता के लिए एक फ़ील्ड को "?" माँगता है।

step मान कैसे काम करते हैं?

step का सिंटैक्स range/step है। "*/15 * * * *" :00 से शुरू होकर हर 15 मिनट चलता है। मिनट फ़ील्ड में "10-50/20" :10, :30, :50 पर चलता है। step का अर्थ "अभी से हर N" नहीं है — सीमाएँ सदैव रेंज के आरंभ से मेल खाती हैं, इसलिए step वर्तमान समय के साथ नहीं खिसकता।

क्या आप यहाँ परखी गई cron एक्सप्रेशनों को सहेजते हैं?

नहीं। आपने जो टाइप किया उसका कोई रिकॉर्ड हमारे पास नहीं रहता। पेस्ट या प्रयोग किया गया सब कुछ पृष्ठ बंद/रिफ्रेश होते ही नष्ट हो जाता है — न कोई लॉग, न आपके शेड्यूल पर कोई विश्लेषण। अतिरिक्त आश्वासन हेतु ब्राउज़र के डेवलपर टूल्स देख सकते हैं।