Cron Expression Parser

Cron एक्सप्रेशन को मानव-पठनीय विवरणों में पार्स करें और अगले रन समय का पूर्वावलोकन देखें

उदाहरण देखें

Cron एक्सप्रेशन

minute hour day(month) month day(week)

मानव-पठनीय विवरण

At 9:00 AM, Mon, Tue, Wed, Thu, Fri

फील्ड विश्लेषण

Minute

0

0–59

Hour

9

0–23

Day (month)

*

1–31

Month

*

1–12

Day (week)

1-5

0–6

अगले 10 निर्धारित रन

12026-03-26 09:00:00
22026-03-27 09:00:00
32026-03-30 09:00:00
42026-03-31 09:00:00
52026-04-01 09:00:00
62026-04-02 09:00:00
72026-04-03 09:00:00
82026-04-06 09:00:00
92026-04-07 09:00:00
102026-04-08 09:00:00

Cron एक्सप्रेशन पार्सिंग क्या है?

Cron एक्सप्रेशन स्पेस से अलग किए गए पाँच फील्ड की एक स्ट्रिंग है जो एक आवर्ती शेड्यूल परिभाषित करती है। यह प्रारूप Unix cron डेमन से उत्पन्न हुआ, जिसे Ken Thompson ने 1979 में Version 7 Unix के लिए पहली बार लिखा था। प्रत्येक फील्ड एक समय इकाई दर्शाता है: मिनट, घंटा, महीने का दिन, महीना, और सप्ताह का दिन। Cron एक्सप्रेशन पार्स करने का अर्थ है इस संक्षिप्त संकेतन को मानव-पठनीय विवरण और आगामी निष्पादन समय की एक ठोस सूची में बदलना।

Linux और macOS पर crontab, GitHub Actions और GitLab CI जैसे CI/CD प्लेटफ़ॉर्म, AWS (EventBridge), Google Cloud Scheduler और Azure Functions जैसे क्लाउड शेड्यूलर, तथा हर प्रमुख प्रोग्रामिंग भाषा की जॉब-शेड्यूलिंग लाइब्रेरियाँ — सभी मानक पाँच-फील्ड प्रारूप का उपयोग करते हैं। कुछ प्रणालियाँ seconds फील्ड या year फील्ड जोड़कर प्रारूप को छह या सात फील्ड तक विस्तारित करती हैं, लेकिन POSIX द्वारा परिभाषित पाँच-फील्ड संरचना वह आधार है जिसे सभी कार्यान्वयन साझा करते हैं।

Cron एक्सप्रेशन को मैन्युअल रूप से पार्स करना त्रुटि-प्रवण है। फील्ड की परस्पर क्रिया अस्पष्ट शेड्यूल बनाती है: 0 9 1-7 * 1 का अर्थ 'पहले सप्ताह का प्रत्येक सोमवार' नहीं है, बल्कि 'हर महीने की 1 से 7 तारीख या कोई भी सोमवार' है। एक cron पार्सर प्रत्येक फील्ड का विस्तार करके, संयोजन नियम लागू करके और वास्तविक टाइमस्टैम्प उत्पन्न करके इस अस्पष्टता को समाप्त करता है।

इस Cron पार्सर का उपयोग क्यों करें?

किसी कॉन्फ़िगरेशन फ़ाइल से 30 */6 1,15 * * जैसा cron एक्सप्रेशन पढ़कर यह जानना कि वह कब निष्पादित होगा — पाँच फील्ड में मानसिक गणना आवश्यक है। यह पार्सर वह कार्य तुरंत करता है।

तत्काल पार्सिंग
Cron एक्सप्रेशन टाइप करें या चिपकाएँ और तुरंत मानव-पठनीय विवरण तथा अगले 10 निर्धारित रन समय देखें। कोई Submit बटन नहीं, कोई रीलोड नहीं।
🔒
प्राइवेसी-फर्स्ट
सभी पार्सिंग आपके ब्राउज़र में स्थानीय रूप से होती है। आपके cron एक्सप्रेशन और शेड्यूल डेटा कभी भी आपके डिवाइस से बाहर नहीं जाते।
📋
फील्ड-दर-फील्ड विश्लेषण
पाँचों फील्ड में से प्रत्येक को अलग-अलग पार्स कर प्रदर्शित किया जाता है, जिससे समाधानित मान दिखते हैं। एक नज़र में पहचानें कि कौन सा फील्ड शेड्यूल नियंत्रित करता है।
🔄
कोई खाता आवश्यक नहीं
पृष्ठ खोलें और पार्सिंग शुरू करें। कोई लॉगिन नहीं, कोई API कुंजी नहीं, कोई इंस्टॉलेशन नहीं। किसी भी आधुनिक ब्राउज़र वाले डिवाइस पर काम करता है।

Cron पार्सर के उपयोग के मामले

Frontend Developer
बैकएंड को भेजने से पहले एडमिन डैशबोर्ड और शेड्यूलिंग UI में cron एक्सप्रेशन सत्यापित करें। पुष्टि करें कि उपयोगकर्ता ने ड्रॉपडाउन में जो शेड्यूल चुना वह फ़ॉर्म द्वारा उत्पन्न cron स्ट्रिंग से मेल खाता है।
Backend Engineer
अप्रत्याशित समय पर निष्पादित होने वाले निर्धारित जॉब डीबग करें। अपने टास्क क्यू कॉन्फ़िग (Celery, Sidekiq, Quartz) से cron एक्सप्रेशन चिपकाएँ और जाँचें कि अगले रन समय आपकी अपेक्षाओं से मेल खाते हैं।
DevOps / SRE
CI/CD पाइपलाइन, Kubernetes CronJobs और क्लाउड शेड्यूलर कॉन्फ़िग में cron शेड्यूल का लेखापरीक्षण करें। डिप्लॉय करने से पहले सत्यापित करें कि बैकअप जॉब, प्रमाणपत्र नवीनीकरण और क्लीनअप स्क्रिप्ट सही समय पर निर्धारित हैं।
QA Engineer
सत्यापित करें कि परीक्षण वातावरण में निर्धारित कार्य उत्पादन शेड्यूल से मेल खाते हैं। माह या सप्ताह-दिन फील्ड में off-by-one errors उत्पादन में छूटे हुए रन से पहले पकड़ें।
Data Engineer
ETL पाइपलाइन और डेटा सिंक जॉब के लिए cron ट्रिगर जाँचें। पुष्टि करें कि extraction window ओवरलैप नहीं होती और downstream dependencies के पास पर्याप्त अग्रिम समय है।
छात्र / शिक्षार्थी
विभिन्न एक्सप्रेशन के साथ प्रयोग करके और परिणाम real-time में देखकर cron सिंटैक्स सीखें। wildcards, ranges और step values आपस में कैसे interact करते हैं, यह समझ बनाएँ।

Cron एक्सप्रेशन सिंटैक्स संदर्भ

एक मानक cron एक्सप्रेशन में पाँच स्पेस-पृथक फील्ड होते हैं। प्रत्येक फील्ड पूर्णांक, वाइल्डकार्ड, रेंज, सूचियाँ और चरण मान स्वीकार करता है। नीचे दी गई तालिका प्रत्येक फील्ड की अनुमत रेंज और ऑपरेटर दर्शाती है।

फील्डरेंजऑपरेटरविवरण
Minute0–59* , - /Minute within the hour
Hour0–23* , - /Hour of the day (24-hour)
Day (month)1–31* , - /Day of the month
Month1–12* , - /Month of the year (or JAN–DEC)
Day (week)0–6* , - /Day of the week (0 = Sunday, or SUN–SAT)

चार विशेष वर्ण नियंत्रित करते हैं कि प्रत्येक फील्ड में मान किस प्रकार मिलाए जाते हैं:

वर्णनामउदाहरण
*WildcardMatches every possible value in the field. * in the minute field means "every minute."
,ListSeparates individual values. 1,15 in the day field means "the 1st and 15th."
-RangeDefines an inclusive range. 1-5 in the day-of-week field means "Monday through Friday."
/StepDefines an interval. */10 in the minute field means "every 10 minutes." 5/15 means "5, 20, 35, 50."

यहाँ सामान्य cron एक्सप्रेशन हैं जो अधिकांश शेड्यूलिंग आवश्यकताओं को पूरा करते हैं:

एक्सप्रेशनशेड्यूल
* * * * *Every minute
0 * * * *Every hour (at minute 0)
*/15 * * * *Every 15 minutes
0 9 * * *Every day at 9:00 AM
0 9 * * 1-5Weekdays at 9:00 AM
30 2 * * 0Every Sunday at 2:30 AM
0 0 1 * *First day of every month at midnight
0 0 * * 1Every Monday at midnight
0 0 1 1 *January 1st at midnight (yearly)
0 */6 * * *Every 6 hours
5,35 * * * *At minute 5 and 35 of every hour
0 9-17 * * 1-5Every hour from 9 AM to 5 PM, weekdays

कोड उदाहरण

लोकप्रिय भाषाओं में cron एक्सप्रेशन पार्स करने और अगले रन समय की गणना करने का तरीका:

JavaScript (Node.js)
import cronstrue from 'cronstrue';

// Parse cron to human-readable text
cronstrue.toString('0 9 * * 1-5');
// → "At 09:00 AM, Monday through Friday"

cronstrue.toString('*/15 * * * *');
// → "Every 15 minutes"

// Validate with cron-parser and get next run times
import { parseExpression } from 'cron-parser';

const interval = parseExpression('30 2 * * 0');
console.log(interval.next().toISOString());
// → next Sunday at 02:30 UTC

// Iterate over the next 5 runs
for (let i = 0; i < 5; i++) {
  console.log(interval.next().toString());
}
Python
from crontab import CronTab
from croniter import croniter
from datetime import datetime

# Parse and describe a cron expression
cron = CronTab('0 9 * * 1-5')
print(cron.next(default_utc=True))
# → seconds until next run

# Get the next 5 run times with croniter
base = datetime.now()
cron_iter = croniter('0 9 * * 1-5', base)
for _ in range(5):
    print(cron_iter.get_next(datetime))
# → next 5 weekday 09:00 timestamps

# Check if a specific time matches
print(croniter.match('*/15 * * * *', datetime(2026, 3, 25, 10, 30)))
# → True (minute 30 is divisible by 15)
Go
package main

import (
    "fmt"
    "time"
    "github.com/robfig/cron/v3"
)

func main() {
    // Parse a standard 5-field cron expression
    parser := cron.NewParser(cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow)
    schedule, err := parser.Parse("0 9 * * 1-5")
    if err != nil {
        panic(err)
    }

    // Calculate the next 5 run times
    now := time.Now()
    for i := 0; i < 5; i++ {
        now = schedule.Next(now)
        fmt.Println(now)
    }
    // → next 5 weekday 09:00 timestamps
}
Bash (crontab)
# List current user's cron jobs
crontab -l

# Edit cron jobs interactively
crontab -e

# Add a job: run backup.sh every day at 2:30 AM
# (append to crontab via pipe)
(crontab -l 2>/dev/null; echo "30 2 * * * /home/user/backup.sh") | crontab -

# Check syntax with a dry-run parse (requires cronie or busybox)
# The system will reject invalid expressions when saving

# View cron logs on systemd-based Linux
journalctl -u cron --since "1 hour ago"

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

5-फील्ड और 6-फील्ड cron एक्सप्रेशन में क्या अंतर है?
मानक (POSIX) cron प्रारूप में 5 फील्ड हैं: मिनट, घंटा, महीने-का-दिन, महीना, सप्ताह-का-दिन। Quartz Scheduler और Spring जैसे कुछ टूल आरंभ में seconds फील्ड जोड़ते हैं, जिससे यह 6 फील्ड हो जाता है। AWS EventBridge अंत में year फील्ड के साथ 6 फील्ड का उपयोग करता है। यह पार्सर मानक 5-फील्ड प्रारूप का समर्थन करता है, जो crontab, GitHub Actions, Kubernetes CronJobs और अधिकांश शेड्यूलिंग लाइब्रेरी के साथ संगत है।
Cron महीने-का-दिन और सप्ताह-का-दिन को एक साथ कैसे संभालता है?
जब दोनों फील्ड प्रतिबंधित हों (न कि *), तो cron OR तर्क का उपयोग करता है: जॉब तब चलता है जब कोई भी एक शर्त सत्य हो। उदाहरण के लिए, 0 9 15 * 1 का अर्थ है 'हर महीने की 15 तारीख को सुबह 9:00 बजे या प्रत्येक सोमवार को।' यह भ्रम का एक सामान्य स्रोत है। यदि दोनों फील्ड * पर सेट हों, तो जॉब प्रतिदिन चलता है।
Cron किस टाइमज़ोन का उपयोग करता है?
पारंपरिक crontab सिस्टम के स्थानीय टाइमज़ोन में चलता है। Kubernetes CronJobs डिफ़ॉल्ट रूप से kube-controller-manager टाइमज़ोन (सामान्यतः UTC) का उपयोग करते हैं, लेकिन Kubernetes 1.25 से वैकल्पिक .spec.timeZone फील्ड का समर्थन करते हैं। AWS EventBridge और Google Cloud Scheduler प्रत्येक शेड्यूल के लिए टाइमज़ोन निर्दिष्ट करने देते हैं। Cron जॉब डिप्लॉय करने से पहले हमेशा जाँचें कि आपका शेड्यूलर कौन सा टाइमज़ोन उपयोग करता है।
क्या cron हर 30 सेकंड में जॉब चला सकता है?
मानक 5-फील्ड cron एक मिनट से कम अंतराल का समर्थन नहीं करता। न्यूनतम अंतराल एक मिनट (*/1 या *) है। हर 30 सेकंड में कुछ चलाने के लिए आपको या तो seconds फील्ड के साथ 6-फील्ड cron (Quartz, Spring), एक wrapper script जो 30 सेकंड wait करके फिर चले, या OnCalendar के साथ systemd टाइमर जैसा भिन्न शेड्यूलिंग तंत्र चाहिए।
क्या सप्ताह-का-दिन फील्ड में 0 और 7 एक समान हैं?
अधिकांश cron कार्यान्वयनों में, 0 और 7 दोनों रविवार दर्शाते हैं। यह परंपरा मूल Unix cron से आई है। हालाँकि, कुछ प्रणालियाँ (Quartz) रविवार के लिए 1 और शनिवार के लिए 7 का उपयोग करती हैं। POSIX रेंज 0-6 परिभाषित करता है जिसमें 0 = रविवार। यदि आपका शेड्यूलर नामित दिन (SUN, MON) स्वीकार करता है, तो अस्पष्टता से बचने के लिए उनका उपयोग करें।
यदि मैं ऐसा महीने-का-दिन सेट करूँ जो मौजूद नहीं है तो क्या होगा?
यदि आप 31 तारीख के लिए जॉब निर्धारित करते हैं (0 0 31 * *), तो यह 31 से कम दिनों वाले महीनों में नहीं चलेगा। Cron अगले महीने में स्थानांतरित नहीं होता। फ़रवरी हमेशा छूटेगी, और अप्रैल, जून, सितंबर और नवंबर भी छूटेंगे। हर महीने के अंतिम दिन चलाने के लिए, कुछ cron कार्यान्वयन L संशोधक का समर्थन करते हैं (0 0 L * *), लेकिन मानक POSIX cron नहीं करता।
डिप्लॉय करने से पहले cron एक्सप्रेशन का परीक्षण कैसे करें?
अगले रन समय देखने और शेड्यूल अपनी अपेक्षा से मेल खाने की पुष्टि के लिए इस जैसे ऑनलाइन पार्सर का उपयोग करें। उत्पादन सत्यापन के लिए, अधिकांश cron लाइब्रेरी अगले-रन गणना फ़ंक्शन प्रदान करती हैं: Node.js में cron-parser, Python में croniter, Go में robfig/cron। डिप्लॉय करने से पहले अगले N निष्पादन समय की पुष्टि के लिए इनमें से किसी एक के माध्यम से अपने परीक्षण सूट में एक्सप्रेशन चलाएँ।