DevToolPal
TR

Cron ifadesi

Her ayın ilk pazartesisi

İş her ayın 1–7. günlerinde 09:00'da başlar ve bir shell testi yalnızca pazartesi olan günü tutar.

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

0 9 1-7 * 1 yazmak işe yaramaz: iki gün alanı da ayarlıysa cron herhangi biri eşleştiğinde çalışır, yani 1–7. günlerde ve her pazartesi. Quartz ve Spring MON#1'i destekler.

Alan alan

Alan Değer Eşleşenler
Dakika 0 0
Saat 9 9
Ayın günü 1-7 1, 2, 3, 4, 5, 6, 7
Ay * Her değer
Haftanın günü * Her değer

Sonraki çalışma zamanları

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

  1. 5 Oca 2026 Pzt 09:00
  2. 2 Şub 2026 Pzt 09:00
  3. 2 Mar 2026 Pzt 09:00
  4. 6 Nis 2026 Pzt 09:00
  5. 4 May 2026 Pzt 09:00
  6. 1 Haz 2026 Pzt 09:00

Kullanıma hazır sürümler

crontab
0 9 1-7 * * [ "$(date +\%u)" = 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: first-monday-of-month
spec:
  schedule: "0 9 1-7 * *"
  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 9 1-7 * *'
  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 9 ? * MON#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 9 * * MON#1")

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

SSS

› 0 9 1-7 * 1 neden fazla sık çalışıyor?

Ayın günü ve haftanın günü ikisi de kısıtlıysa cron bunları VEYA ile birleştirir; iş 1'inden 7'sine kadar ve ayrıca her pazartesi çalışır.

› 0 9 1-7 * * 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 9 1-7 * * 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.