DevToolPal
TR

Cron ifadesi

Her ayın son günü

Standart cron'da "son gün" simgesi yoktur; iş 28–31. günlerde çalışır ve bir shell testi yalnızca yarın ayın 1'i ise devam etmesine izin verir.

0 0 28-31 * * Cron İfadesi Ayrıştırıcı'da aç

Crontab satırı GNU date (date -d tomorrow) kullanır; macOS'ta date -v+1d kullanın. Quartz ve Spring L'yi doğrudan destekler. Kubernetes ve GitHub Actions'ta aynı tarih kontrolünü işin başına ekleyin.

Alan alan

Alan Değer Eşleşenler
Dakika 0 0
Saat 0 0
Ayın günü 28-31 28, 29, 30, 31
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. 31 Oca 2026 Cmt 00:00
  2. 28 Şub 2026 Cmt 00:00
  3. 31 Mar 2026 Sal 00:00
  4. 30 Nis 2026 Per 00:00
  5. 31 May 2026 Paz 00:00
  6. 30 Haz 2026 Sal 00:00

Kullanıma hazır sürümler

crontab
0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = 01 ] && /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: 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 ayarlayın (Kubernetes 1.27+); ayarlanmazsa zamanlama controller manager'ın saat dilimini (genellikle UTC) izler.

GitHub Actions
on:
  schedule:
    - cron: '0 0 28-31 * *'
  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 L * ?

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 L * *")

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

SSS

› Crontab'da % neden \% olarak yazılır?

Crontab satırında % yeni satır (komutun girdisi) anlamına gelir. Tarih biçiminin shell'e bozulmadan ulaşması için \% yazın.

› 0 0 28-31 * * 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 28-31 * * 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.