DevToolPal
हि

Cron एक्सप्रेशन

हर साल

हर साल 1 जनवरी को 00:00 पर एक बार चलता है। @yearly और @annually जैसा ही।

0 0 1 1 * Cron एक्सप्रेशन पार्सर में खोलें

फ़ील्ड-दर-फ़ील्ड

फ़ील्ड मान मेल खाता है
मिनट 0 0
घंटा 0 0
महीने का दिन 1 1
महीना 1 जनवरी
हफ़्ते का दिन * हर मान

अगली रन टाइम

उदाहरण: 1 जनवरी 2026 के बाद पहले 6 रन (UTC)।

  1. शुक्र, 1 जन॰ 2027, 00:00
  2. शनि, 1 जन॰ 2028, 00:00
  3. सोम, 1 जन॰ 2029, 00:00
  4. मंगल, 1 जन॰ 2030, 00:00
  5. बुध, 1 जन॰ 2031, 00:00
  6. गुरु, 1 जन॰ 2032, 00:00

इस्तेमाल के लिए तैयार संस्करण

crontab
0 0 1 1 * /path/to/command

यह लाइन crontab -e से जोड़ें। CRON_TZ या TZ सेट न हो तो यह सर्वर के टाइम ज़ोन में चलती है।

Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-year
spec:
  schedule: "0 0 1 1 *"
  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, पर चलता है।

GitHub Actions
on:
  schedule:
    - cron: '0 0 1 1 *'
  workflow_dispatch:

GitHub Actions हमेशा UTC इस्तेमाल करता है, कम से कम 5 मिनट का अंतराल मानता है, और ज़्यादा लोड में शेड्यूल्ड रन देर से शुरू कर सकता है।

Quartz
0 0 0 1 1 ?

Quartz में सेकंड सबसे पहले आते हैं, और महीने के दिन या हफ़्ते के दिन में से एक में ? चाहिए। दिन रविवार से 1–7 गिने जाते हैं, इसलिए नाम लिखना ज़्यादा सुरक्षित है।

Spring
@Scheduled(cron = "0 0 0 1 1 *")

Spring @Scheduled(cron = …) छह फ़ील्ड लेता है: सेकंड, फिर सामान्य पाँच।

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

› क्या सालाना काम के लिए cron भरोसेमंद है?

अगर उस समय मशीन बंद हो, तो रन छूट जाता है। जिन कामों को बाद में पूरा करना ज़रूरी हो, उनके लिए anacron या Persistent=true वाला systemd टाइमर इस्तेमाल करें।

› 0 0 1 1 * किस टाइम ज़ोन में चलता है?

Cron उस मशीन या सेवा का टाइम ज़ोन इस्तेमाल करता है जो उसे चलाती है। Linux पर यह सिस्टम टाइम ज़ोन है, जब तक CRON_TZ या TZ सेट न हो; Kubernetes CronJob में spec.timeZone सेट कर सकते हैं; GitHub Actions हमेशा UTC इस्तेमाल करता है।

› डिप्लॉय करने से पहले इस शेड्यूल को कैसे जाँचें?

इस साइट के Cron एक्सप्रेशन पार्सर में 0 0 1 1 * खोलें। यह हर फ़ील्ड समझाता है और आने वाले रन आपके लोकल समय या UTC में दिखाता है, सब कुछ ब्राउज़र में।