0 0 28-31 * * Cron एक्सप्रेशन पार्सर में खोलें crontab लाइन GNU date (date -d tomorrow) इस्तेमाल करती है; macOS पर date -v+1d इस्तेमाल करें। Quartz और Spring L को सीधे सपोर्ट करते हैं। Kubernetes और GitHub Actions में काम की शुरुआत में यही तारीख जाँच जोड़ें।
फ़ील्ड-दर-फ़ील्ड
| फ़ील्ड | मान | मेल खाता है |
|---|---|---|
| मिनट | 0 | 0 |
| घंटा | 0 | 0 |
| महीने का दिन | 28-31 | 28, 29, 30, 31 |
| महीना | * | हर मान |
| हफ़्ते का दिन | * | हर मान |
अगली रन टाइम
उदाहरण: 1 जनवरी 2026 के बाद पहले 6 रन (UTC)।
- शनि, 31 जन॰ 2026, 00:00
- शनि, 28 फ़र॰ 2026, 00:00
- मंगल, 31 मार्च 2026, 00:00
- गुरु, 30 अप्रैल 2026, 00:00
- रवि, 31 मई 2026, 00:00
- मंगल, 30 जून 2026, 00:00
इस्तेमाल के लिए तैयार संस्करण
0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = 01 ] && /path/to/command यह लाइन crontab -e से जोड़ें। CRON_TZ या TZ सेट न हो तो यह सर्वर के टाइम ज़ोन में चलती है।
apiVersion: batch/v1
kind: CronJob
metadata:
name: last-day-of-month
spec:
schedule: "0 0 28-31 * *"
timeZone: "Etc/UTC"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: job
image: busybox:1.36
command: ["/bin/sh", "-c", "date; echo run"] spec.timeZone सेट करें (Kubernetes 1.27+); इसके बिना शेड्यूल controller manager के टाइम ज़ोन, आम तौर पर UTC, पर चलता है।
on:
schedule:
- cron: '0 0 28-31 * *'
workflow_dispatch: GitHub Actions हमेशा UTC इस्तेमाल करता है, कम से कम 5 मिनट का अंतराल मानता है, और ज़्यादा लोड में शेड्यूल्ड रन देर से शुरू कर सकता है।
0 0 0 L * ? Quartz में सेकंड सबसे पहले आते हैं, और महीने के दिन या हफ़्ते के दिन में से एक में ? चाहिए। दिन रविवार से 1–7 गिने जाते हैं, इसलिए नाम लिखना ज़्यादा सुरक्षित है।
@Scheduled(cron = "0 0 0 L * *") Spring @Scheduled(cron = …) छह फ़ील्ड लेता है: सेकंड, फिर सामान्य पाँच।
अक्सर पूछे जाने वाले सवाल
› crontab में % को \% क्यों लिखते हैं?
crontab लाइन में % का मतलब नई लाइन (कमांड का इनपुट) है। \% लिखें ताकि तारीख का फ़ॉर्मेट shell तक बिना बदले पहुँचे।
› 0 0 28-31 * * किस टाइम ज़ोन में चलता है?
Cron उस मशीन या सेवा का टाइम ज़ोन इस्तेमाल करता है जो उसे चलाती है। Linux पर यह सिस्टम टाइम ज़ोन है, जब तक CRON_TZ या TZ सेट न हो; Kubernetes CronJob में spec.timeZone सेट कर सकते हैं; GitHub Actions हमेशा UTC इस्तेमाल करता है।
› डिप्लॉय करने से पहले इस शेड्यूल को कैसे जाँचें?
इस साइट के Cron एक्सप्रेशन पार्सर में 0 0 28-31 * * खोलें। यह हर फ़ील्ड समझाता है और आने वाले रन आपके लोकल समय या UTC में दिखाता है, सब कुछ ब्राउज़र में।