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

Cron एक्सप्रेशन पाँच फ़ील्ड की स्ट्रिंग है — मिनट, घंटा, महीने का दिन, महीना, हफ़्ते का दिन — जो शेड्यूलर को बताती है कि जॉब कब चलाना है। यही सिंटैक्स Linux crontab, Kubernetes CronJob, GitHub Actions शेड्यूल, Cloudflare Workers cron ट्रिगर, AWS EventBridge और ज़्यादातर CI सिस्टम चलाता है, इसलिए इसे पढ़ना और लिखना हर जगह काम आने वाली स्किल है।

यह गाइड हर फ़ील्ड और ऑपरेटर समझाती है, वे शेड्यूल देती है जो लोग सबसे ज़्यादा खोजते हैं, और उन जालों को समझाती है — टाइम ज़ोन, महीने का दिन बनाम हफ़्ते का दिन, और कुछ सिस्टम में अतिरिक्त सेकंड फ़ील्ड — जिनसे जॉब गलत समय पर चलता है या बिल्कुल नहीं चलता।

पाँच फ़ील्ड

┌───────────── minute        (0–59)
│ ┌─────────── hour          (0–23)
│ │ ┌───────── day of month  (1–31)
│ │ │ ┌─────── month         (1–12 or JAN–DEC)
│ │ │ │ ┌───── day of week   (0–6, Sunday = 0, or SUN–SAT)
│ │ │ │ │
* * * * *   → every minute
30 2 * * *  → at 02:30 every day
0 9 * * 1-5 → at 09:00 Monday to Friday

आज़माएँ: Cron एक्सप्रेशन एक्सप्लेनर

ऑपरेटर: *, /, - और ,

  • * (एस्टरिस्क) — हर वैल्यू। घंटे के फ़ील्ड में * का मतलब हर घंटा।
  • , (कॉमा) — लिस्ट। मिनट के फ़ील्ड में 0,30 का मतलब मिनट 0 और मिनट 30 पर।
  • - (हाइफ़न) — रेंज। घंटे के फ़ील्ड में 9-17 का मतलब 9, 10, … 17।
  • / (स्लैश) — स्टेप। मिनट के फ़ील्ड में */15 का मतलब हर 15 मिनट (0, 15, 30, 45); 1-31/2 का मतलब हर दूसरे दिन।
  • नाम — JAN–DEC और SUN–SAT ज़्यादातर इम्प्लीमेंटेशन में चलते हैं और नंबर से पढ़ने में आसान हैं।
  • एक्सटेंशन — कुछ शेड्यूलर L (last), W (nearest weekday), # (nth weekday) और ? स्वीकार करते हैं — ये Quartz/Spring की खूबियाँ हैं, स्टैंडर्ड cron की नहीं।

आज़माएँ: Cron एक्सप्रेशन जनरेटर

आम शेड्यूल

*/5 * * * *      every 5 minutes
0 * * * *        every hour, on the hour
0 */6 * * *      every 6 hours (00:00, 06:00, 12:00, 18:00)
0 0 * * *        every day at midnight
0 9 * * 1-5      weekdays at 09:00
0 9 * * 1        every Monday at 09:00
0 0 1 * *        first day of every month at midnight
0 0 1 1 *        once a year, 1 January
30 23 * * 0      Sundays at 23:30
0 8,20 * * *     twice a day, 08:00 and 20:00
15 3 */2 * *     every second day at 03:15
0 0 * * 5        every Friday at midnight

आज़माएँ: Cron एक्सप्रेशन जनरेटर आज़माएँ: Cron एक्सप्रेशन वैलिडेटर

टाइम ज़ोन: सबसे आम cron बग

Cron एक्सप्रेशन का अपना कोई टाइम ज़ोन नहीं होता; यह उस ज़ोन में चलता है जो शेड्यूलर इस्तेमाल करता है। Linux crontab सिस्टम ज़ोन इस्तेमाल करता है, Kubernetes और Cloudflare Workers UTC, GitHub Actions UTC, और क्लाउड सर्विसेज़ अलग-अलग। भारतीय समय (IST, UTC+5:30) सुबह 09:00 के लिए बना जॉब UTC शेड्यूलर पर 30 3 * * * लिखना होगा — और डेलाइट सेविंग वाले ज़ोन में 09:00 साल में दो बार एक घंटा खिसक जाता है। एक्सप्रेशन के पास हमेशा ज़ोन लिखें और साफ़-साफ़ कन्वर्ट करें।

आज़माएँ: Timezone कन्वर्टर

महीने का दिन बनाम हफ़्ते का दिन

जब दोनों दिन-फ़ील्ड सीमित हों, स्टैंडर्ड cron जॉब तब चलाता है जब कोई एक मैच करे (OR), दोनों नहीं। 0 0 13 * 5 हर 13 तारीख़ को और हर शुक्रवार को चलता है, सिर्फ़ शुक्रवार 13 को नहीं। "महीने का दूसरा मंगलवार" या "महीने का आख़िरी दिन" कहने के लिए Quartz-स्टाइल एक्सटेंशन या जॉब के अंदर छोटी जाँच चाहिए।

आज़माएँ: Cron एक्सप्रेशन एक्सप्लेनर

छह-फ़ील्ड cron और दूसरे वेरिएंट

  • Quartz, Spring और कुछ Java शेड्यूलर सेकंड फ़ील्ड पहले रखते हैं: 0 */5 * * * ? — छह या सात फ़ील्ड। वहाँ पाँच-फ़ील्ड एक्सप्रेशन पेस्ट करने से हर फ़ील्ड एक खिसक जाता है।
  • Cloudflare Workers, Kubernetes, GitHub Actions और Vercel स्टैंडर्ड पाँच फ़ील्ड इस्तेमाल करते हैं।
  • कुछ सिस्टम @hourly, @daily, @weekly, @monthly और @yearly शॉर्टहैंड स्वीकार करते हैं।
  • न्यूनतम रेज़ोल्यूशन एक मिनट है; सब-मिनट शेड्यूल के लिए अलग मैकेनिज़्म चाहिए।

आज़माएँ: Cron एक्सप्रेशन वैलिडेटर

Cron एक्सप्रेशन टेस्ट करना

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

आज़माएँ: Cron एक्सप्रेशन वैलिडेटर आज़माएँ: Unix टाइमस्टैम्प कन्वर्टर

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

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

हर दिन के हर घंटे का हर मिनट। हर एस्टरिस्क अपने फ़ील्ड के लिए "हर वैल्यू" का मतलब रखता है।

हर 5 मिनट में cron जॉब कैसे चलाएँ?

*/5 * * * * इस्तेमाल करें। मिनट फ़ील्ड में स्टेप ऑपरेटर 0, 5, 10 … 55 पर चलता है।

हर सोमवार सुबह 9 बजे जॉब कैसे शेड्यूल करें?

0 9 * * 1 — मिनट 0, घंटा 9, महीने का कोई भी दिन, कोई भी महीना, वीकडे 1 (सोमवार)।

cron में रविवार 0 है या 7?

ज़्यादातर इम्प्लीमेंटेशन में दोनों चलते हैं: 0 और 7 का मतलब रविवार। अस्पष्टता से बचने के लिए शेड्यूलर नाम स्वीकार करे तो SUN इस्तेमाल करें।

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

जो शेड्यूलर में कॉन्फ़िगर है — crontab के लिए सिस्टम ज़ोन, Kubernetes, GitHub Actions और Cloudflare Workers के लिए UTC। एक्सप्रेशन लिखते समय अपना लोकल समय उस ज़ोन में बदलें।

मेरा cron जॉब क्यों नहीं चलता?

आम वजहें: एक्सप्रेशन गलत ज़ोन में है, पाँच-फ़ील्ड शेड्यूलर को छह-फ़ील्ड एक्सप्रेशन दिया गया (या उल्टा), महीने के दिन और हफ़्ते के दिन फ़ील्ड OR की तरह मिलते हैं, या जॉब चलता है लेकिन चुपचाप फ़ेल होता है — शेड्यूलर के लॉग और नेक्स्ट-रन प्रिव्यू देखें।

इस गाइड में बताए गए टूल्स

तारीख़ और समय को अलग-अलग timezone के बीच बदलें (रियाद, अम्मान, दिल्ली, UTC, न्यूयॉर्क, लंदन…)।

यूटिलिटीज़ टूल खोलें

और गाइड

और गाइड →
JSON और डेटा

JSON क्या है?

JSON आसान भाषा में: यह क्या है, छह वैल्यू टाइप, वे सिंटैक्स नियम जिनमें लोग अटकते हैं, इसे फ़ॉर्मेट और वैलिडेट कैसे करें, और XML व YAML से इसकी तुलना।

5 मिनट पढ़ने का समय
API टेस्टिंग

API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

API टेस्टिंग समझें: यह क्या है, हर रिक्वेस्ट और रिस्पॉन्स में क्या जाँचें, REST API टेस्ट करने का स्टेप-बाय-स्टेप तरीका, आम गलतियाँ और मुफ़्त टूल्स।

7 मिनट पढ़ने का समय
टेस्ट डिज़ाइन

टेस्ट केस कैसे लिखें

भरोसेमंद टेस्ट केस कैसे लिखें: हर केस के ज़रूरी फ़ील्ड, कॉपी-रेडी टेम्पलेट, लॉगिन का उदाहरण, और वे तकनीकें जो असली बग पकड़ती हैं।

5 मिनट पढ़ने का समय
सुरक्षा

JWT क्या है? JSON Web Token समझें

JWT आसान भाषा में: JSON Web Token के तीन हिस्से, exp और sub जैसे क्लेम, डिकोड और वेरिफ़ाई कैसे करें, डिकोड करना वेरिफ़ाई क्यों नहीं, और सिक्योरिटी।

5 मिनट पढ़ने का समय
एन्कोडिंग

Base64 क्या है? एन्कोडिंग समझें

Base64 समझें: यह क्या है और क्या नहीं, एन्कोडिंग कैसे काम करती है, आउटपुट एक-तिहाई क्यों बढ़ता है, Base64 बनाम Base64URL, = पैडिंग, और एन्कोड-डिकोड।

4 मिनट पढ़ने का समय
यूटिलिटीज़

UUID क्या है? v4 बनाम v7, UUID बनाम GUID और ULID

UUID समझें: 128-बिट फ़ॉर्मेट, v4 बनाम v7, डेटाबेस key के लिए v7 बेहतर क्यों, UUID बनाम GUID बनाम ULID, कॉलिज़न की संभावना, और जनरेट-वैलिडेट कैसे करें।

5 मिनट पढ़ने का समय