DevToolPal
TR

Cron ifadesi

Her yıl

Her yıl 1 Ocak 00:00'da bir kez çalışır. @yearly ve @annually ile aynıdır.

0 0 1 1 * Cron İfadesi Ayrıştırıcı'da aç

Alan alan

Alan Değer Eşleşenler
Dakika 0 0
Saat 0 0
Ayın günü 1 1
Ay 1 Ocak
Haftanın günü * Her değer

Sonraki çalışma zamanları

Örnek: 1 Ocak 2026 sonrasındaki ilk 6 çalışma (UTC).

  1. 1 Oca 2027 Cum 00:00
  2. 1 Oca 2028 Cmt 00:00
  3. 1 Oca 2029 Pzt 00:00
  4. 1 Oca 2030 Sal 00:00
  5. 1 Oca 2031 Çar 00:00
  6. 1 Oca 2032 Per 00:00

Kullanıma hazır sürümler

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

Satırı crontab -e ile ekleyin. CRON_TZ veya TZ ayarlı değilse sunucunun saat diliminde çalışır.

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 ayarlayın (Kubernetes 1.27+); ayarlanmazsa zamanlama controller manager'ın saat dilimini (genellikle UTC) izler.

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

GitHub Actions her zaman UTC kullanır, en az 5 dakikalık aralıkları kabul eder ve yoğunlukta zamanlanmış çalışmaları geç başlatabilir.

Quartz
0 0 0 1 1 ?

Quartz saniyeyi en başa koyar ve ayın günü ya da haftanın günü alanından birinde ? ister. Günler pazardan başlayarak 1–7'dir; isim kullanmak daha güvenlidir.

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

Spring @Scheduled(cron = …) altı alan alır: saniye ve ardından alışılmış beş alan.

SSS

› Cron yıllık işler için güvenilir mi?

O anda makine kapalıysa çalışma kaçırılır. Telafi edilmesi gereken işler için anacron veya Persistent=true ayarlı bir systemd zamanlayıcısı kullanın.

› 0 0 1 1 * hangi saat diliminde çalışır?

Cron, onu çalıştıran makinenin veya hizmetin saat dilimini kullanır. Linux'ta CRON_TZ veya TZ ayarlı değilse sistem saat dilimidir; Kubernetes CronJob'ları spec.timeZone kabul eder; GitHub Actions her zaman UTC kullanır.

› Bu zamanlamayı dağıtmadan önce nasıl kontrol ederim?

0 0 1 1 * ifadesini bu sitedeki Cron İfadesi Ayrıştırıcı'da açın. Her alanı açıklar ve sonraki çalışmaları yerel saatte veya UTC olarak doğrudan tarayıcıda listeler.