Cron İfadesi Oluşturucu

0-59

0-23

1-31

1-12

0-7 (0,7=Paz)

Sonraki

Cron sözdizimi kısa ve yanlış anlaşılmaya çok açıktır: 0 */6 * * * her altı saatte bir çalışırken, */6 0 * * * yalnızca gece yarısından sonraki ilk bir saat içinde on kez tetiklenir. Bu oluşturucu, bir zamanlamayı görsel olarak seçmenizi sağlar (her 15 dakikada bir, hafta içi sabah 9’da, her ayın 1’inde) ve tam ifadeyi, ne anlama geldiğini sade bir dille anlatan bir açıklamayla birlikte üretir.

Bir cron ifadesi nasıl kurulur

  1. 1

    Hazır ayar seçin veya alanları yazın

    Her dakika, her saat, her gece yarısı, her Pazar ve her ayın 1'i tek tıkla seçilir. Diğer tüm durumlarda değerleri doğrudan beş alana yazın.

  2. 2

    Zamanlamayı düzeltin

    Belirli dakikalar, saatler, ayın günleri, aylar, hafta günleri. Aralıklar (9-17), listeler (1,15) ve adımlar (*/6) hepsi desteklenir.

  3. 3

    İfadeyi okuyun

    Oluşturucu her zaman standart 5 alanlı cron biçimini ve zamanlamanın sade bir dille açıklamasını üretir.

  4. 4

    Lehçeyi kontrol edin

    Lehçeler birbirinden farklıdır (Quartz, AWS EventBridge, Kubernetes). İfadenin zamanlayıcınızın beklediği biçimle eşleştiğini doğrulayın.

Beş alan

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Haftanın günü (0-6, Pazar=0, veya SUN-SAT)
│  │  │  └───── Ay (1-12, veya JAN-DEC)
│  │  └──────── Ayın günü (1-31)
│  └─────────── Saat (0-23)
└────────────── Dakika (0-59)

Her alan şunları kabul eder:

  • Belirli bir sayı: 5
  • Bir liste: 1,15,30
  • Bir aralık: 9-17
  • Bir adım: */10 (her 10’da bir) ya da 0-30/5 (0’dan 30’a her 5’te bir)
  • Joker: * (her değer)

Yaygın ifadeler

Zamanlama Cron ifadesi
Her dakika * * * * *
Her 15 dakikada bir */15 * * * *
Her saat tam saatte 0 * * * *
Her 6 saatte bir 0 */6 * * *
Her gün 02:30’da 30 2 * * *
Her hafta içi sabah 9’da 0 9 * * 1-5
Her Pazartesi sabah 8’de 0 8 * * 1
Her ayın ilk günü, sabah 3’te 0 3 1 * *
Her 15 dakikada, hafta içi 9-17 */15 9-17 * * 1-5
1 ve 15’inde öğlen 0 12 1,15 * *
Her Pazar gece yarısı 0 0 * * 0

Ayın günü + hafta günü tuzağı

Standart cronda, eğer hem ayın günü hem de hafta günü belirtilmişse (* değilse), iş ikisinden biri eşleştiğinde çalışır (AND değil OR). 0 0 1 * MON her ayın 1’inde artı her Pazartesi çalışır, yalnızca 1’i Pazartesi olduğunda değil.

Vixie cron ve çoğu Linux dağıtımı bu OR kuralına uyar. Quartz (Java) ve bazıları AND kullanır. Emin değilseniz, ifadeyi zamanlayıcınızda deneme çalıştırması (dry run) veya test göreviyle deneyin.

Lehçe farkları

  • Standart cron (Linux): 5 alan, hafta günü 0-6 (Pazar = 0 ya da 7).
  • Quartz (Spring, Java uygulamaları): 6-7 alan, 1. alan saniye ve isteğe bağlı yıl. Hafta günü 1-7 (Pazar = 1).
  • AWS EventBridge cron: 6 alan, yıl dahil. Hafta günü ve ayın günü birbirini dışlamalı (biri ? olmalı).
  • GitHub Actions: standart 5 alan, minimum aralık 5 dakika, yalnızca UTC.
  • Kubernetes CronJob: standart 5 alan, varsayılan UTC.

Zamanlayıcınızın hangi lehçeyi kullandığını her zaman doğrulayın.

Saat dilimleri

Klasik cron, sunucunun yerel saat diliminde çalışır. Bu, DST geçişlerinde fena halde ısırır: 02:30 işi geçiş günlerinde iki kez çalışabilir ya da hiç çalışmayabilir. Modern zamanlayıcılar (systemd zamanlayıcıları, Kubernetes, EventBridge) saat dilimini açıkça belirtmenizi sağlar, iyi bir nedeniniz yoksa UTC kullanın.

Sık Sorulan Sorular

Alanın her 5 birimi, 0’dan başlayarak. Dakika alanında */5 0, 5, 10, 15, …, 55. dakikalarda tetiklenir. 0,5,10,15,20,25,30,35,40,45,50,55 için kısaltmadır.

Cron, 60 dakika ya da 24 saate tam bölünmeyen keyfi aralıkları ifade edemez. 90 dakika için belirli tetikleme zamanlarını listeleyin: ek satırlarla birleştirilen 0 0,9 * * *, ya da keyfi aralıkları destekleyen bir zamanlayıcıya (systemd zamanlayıcıları, anacron) geçin.

Gece yarısı. Alan sırası dakika-saattir, yani 0 0 “0. saatin 0. dakikası” demektir. Öğlen 0 12 * * * olurdu.

Standart cron atlar, kaçırılan çalışmalar yeniden denenmez. Anacron, kaçırılan günlük/haftalık/aylık işleri sonraki açılışta yakalar. Kubernetes CronJob’larda kaçırılan pencereleri açıkça ele almak için startingDeadlineSeconds ve concurrencyPolicy vardır.

İlgili Araçlar

Araç diğer dillerde mevcuttur