Cron एक्सप्रेशन क्या है?
Cron एक्सप्रेशन पाँच-फ़ील्ड का शेड्यूल है — मिनट, घंटा, महीने का दिन, महीना, सप्ताह का दिन — जिसे cron डेमन और ज़्यादातर शेड्यूलर (Kubernetes CronJobs, CI पाइपलाइन, क्लाउड फ़ंक्शन) पढ़ते हैं: "0 9 * * 1-5" का मतलब कार्यदिवसों में 09:00। रेंज, लिस्ट और स्टेप (*/15) हर फ़ील्ड को परिष्कृत करते हैं; POSIX परिभाषा आधार है, और कुछ शेड्यूलर सेकंड फ़ील्ड या @daily जैसे नामित शॉर्टकट जोड़ते हैं।
गाइड पढ़ें: Cron एक्सप्रेशन समझें
Cron एक्सप्रेशन जनरेटर कैसे इस्तेमाल करें
- किसी प्रीसेट से शुरू करें या "Custom schedule" पर ही रहें।
- हर फ़ील्ड सेट करें: मोड चुनें और वैल्यू, रेंज या स्टेप चुनें।
- आसान भाषा में व्याख्या और आने वाले रन जाँचें।
- एक्सप्रेशन को अपने crontab, CI कॉन्फ़िग या शेड्यूलर में कॉपी करें।
Cron एक्सप्रेशन जनरेटर की खूबियाँ
- आम शेड्यूल के प्रीसेट, जिनमें खाड़ी का कार्य-सप्ताह (रविवार–गुरुवार) और महीने का आख़िरी दिन शामिल हैं
- प्रति-फ़ील्ड बिल्डर: मिनट, घंटे, दिन, महीने और सप्ताह के दिनों के लिए every, विशिष्ट वैल्यू, रेंज या स्टेप
- वैकल्पिक सेकंड फ़ील्ड (Spring / node-cron शैली)
- लाइव एक्सप्रेशन, अंग्रेज़ी में व्याख्या और आपके timezone में अगले 10 रन
- किसी भी मौजूदा एक्सप्रेशन को बिल्डर में लोड करें
- एक क्लिक में एक्सप्रेशन कॉपी करें
Cron एक्सप्रेशन जनरेटर का उदाहरण
कार्यदिवसों में 09:00 और 17:00 बजे
इनपुट:
Minutes: 0 · Hours: 9,17 · Days: every · Months: every · Weekdays: Mon–Friआउटपुट:
0 9,17 * * 1-5
At minute 0 past hour 9 and 17 on Monday through Friday.Cron एक्सप्रेशन
भाग 1:0
- 1–5सरल भाषा में:
At minute 0 past hour 9 and 17 on Monday through Friday.
- 1मिनट (
0–59)वैल्यू 0: घंटे के मिनट 0 पर।विशिष्ट मान - 2घंटे (
0–23)वैल्यू 9 और 17, सूची9,17के रूप में: 09:00 और 17:00 पर।विशिष्ट मान - 3महीने का दिन (
1–31)*: कोई पाबंदी नहीं, महीने का कोई भी दिन।हर दिन - 4महीना (
1–12)*: कोई पाबंदी नहीं, कोई भी महीना।हर महीने - 5सप्ताह का दिन (
0–6)सोम से शुक्र तक के चेकबॉक्स चुने गए (वैल्यू 1 से 5); तीन या ज़्यादा लगातार वैल्यू होने से वे range1-5बन जाती हैं।विशिष्ट मान
"सेकंड फ़ील्ड शामिल करें" चुनने पर सेकंड फ़ील्ड सबसे पहले जुड़ता है (6 फ़ील्ड)। बिल्डर रविवार हमेशा 0 लिखता है, 7 कभी नहीं।
Cron एक्सप्रेशन जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
जनरेटर कौन-सा cron फ़ॉर्मैट बनाता है?
मानक 5-फ़ील्ड फ़ॉर्मैट (minute hour day-of-month month day-of-week), जिसे crontab, Kubernetes CronJobs, GitHub Actions, Cloudflare Cron Triggers और ज़्यादातर शेड्यूलर इस्तेमाल करते हैं। Spring और node-cron के 6-फ़ील्ड फ़ॉर्मैट के लिए "Include seconds" चुनें (day of week 0–7, रविवार = 0 या 7)। Quartz भी सेकंड पहले रखता है, पर दिनों को रविवार से 1–7 गिनता है और एक day फ़ील्ड में ? माँगता है, इसलिए Quartz में पेस्ट करने से पहले वार के नाम (MON-FRI) इस्तेमाल करें और ? जोड़ें।
"Every N (step)" का क्या मतलब है?
यह */N बनाता है: मिनट के लिए */15 हर घंटे के :00, :15, :30 और :45 पर चलता है। शुरुआती वैल्यू सेट करने पर 5-59/15 जैसा एक्सप्रेशन मिलता है।
क्या अगली रन टाइम मेरे timezone में होती हैं?
वे उसी timezone में निकाली जाती हैं जिसे आप चुनते हैं, और daylight-saving बदलाव भी संभाले जाते हैं — जिस रात 02:30 आता ही नहीं, उस रात 02:30 पर तय जॉब छोड़ दिया जाता है।
क्या मैं मौजूदा एक्सप्रेशन बिल्डर में लोड कर सकता हूँ?
हाँ — उसे "Load an existing expression" फ़ील्ड में पेस्ट करें। सूचियाँ, रेंज और स्टेप कंट्रोल पर मैप हो जाते हैं; L, W और # रूपों की व्याख्या तो होती है, पर उन्हें विज़ुअल तरीक़े से एडिट नहीं किया जा सकता।
रविवार–गुरुवार का प्रीसेट क्यों है?
सऊदी अरब, जॉर्डन और ज़्यादातर खाड़ी देशों में रविवार से गुरुवार तक काम होता है, इसलिए "0 8 * * 0-4" वहाँ के कार्यदिवस शेड्यूल के बराबर है।
तकनीकी नोट्स
बिल्डर सबसे संक्षिप्त canonical रूप देता है (buildCron): चुनी वैल्यू से डुप्लिकेट हटाकर क्रम में लगती हैं और तभी range बनती हैं जब तीन या ज़्यादा लगातार हों (0,15,30,45 सूची रहती है; 9,10,11,12 बनता है 9-12), फ़ील्ड के न्यूनतम से शुरू step */N लिखा जाता है, वरना from-max/N (5-59/15), और उलटी range चुपचाप पलट जाती है। Day-of-week 6 पर सीमित है, इसलिए रविवार हमेशा 0 लिखा जाता है, 7 कभी नहीं।
expression लोड करने पर कच्चा टेक्स्ट नहीं, पार्स किए गए value set कंट्रोल पर वापस मैप होते हैं: MON-FRI चेकबॉक्स 1–5 बनता है, Quartz-शैली का 5/15 'step 15 from 5' बनकर 5-59/15 के रूप में दोबारा निकलता है, और L, W या # वाला फ़ील्ड नोट के साथ 'every' पर रीसेट होता है क्योंकि उसका कोई कंट्रोल नहीं। अगले run explainer वाले DST-aware शेड्यूलर से, यहाँ चुने timezone में, अधिकतम 10 आते हैं।
संदर्भ
- crontab — POSIX.1-2017 (IEEE Std 1003.1-2017)पाँच-फ़ील्ड crontab लाइन की पोर्टेबल परिभाषा और हर फ़ील्ड का अर्थ।
- crontab(5) — Linux manual pageLinux (cron/Vixie) crontab फ़ॉर्मेट, रेंज, स्टेप, लिस्ट और @hourly जैसे शॉर्टकट सहित।