Cron İfadesi Açıklama ve Sonraki Çalışma Zamanları

Cron ifadesi beş alandan oluşur: dakika (0-59), saat (0-23), ayın günü (1-31), ay (1-12) ve haftanın günü (0-7, 0 ve 7 Pazar). * her değeri, 1-5 aralığı, */15 her 15 birimi, virgül listeyi gösterir. Örneğin 0 3 * * * her gün saat 03:00'te, */15 9-17 * * 1-5 hafta içi 09:00-17:45 arasında 15 dakikada bir çalışır.

Son güncelleme: · Yazılım ve bilişim hesaplamaları

Hesaplama formu

Cron ifadesini yaz; istersen hesabın başlayacağı tarih ve saati seç.

5 alan: dakika saat gün ay haftanın-günü. *, virgül, aralık (1-5), adım (*/15), ay ve gün adları (JAN, MON) ve @daily gibi kısaltmalar.

Boşsa bugün.

Boşsa 00:00.

Ne hesaplaman gerektiğinden emin değil misin? Hesap asistanına sor, uygun hesaplayıcıyı birlikte bulalım.

Sonucun burada görünecek

Soldaki formu doldurup Hesapla'ya bas; ana sonuç, dağılım ve adım adım hesap burada açılır.

Örnek: Anlamı Pazartesi-Cuma günleri, her 15 dakikada bir, saatler: 09-17 Örneği incele

Cron ifadesi nasıl okunur?

Alanlar soldan sağa dakika, saat, ayın günü, ay ve haftanın günüdür. Görev, tüm alanların o dakikayla eşleştiği her anda çalışır.

* alanın tüm değerlerini, a-b aralığı, a,b,c listeyi gösterir. /n adım değeridir: */15 dakika alanında 0, 15, 30, 45 demektir; 1-10/3 ise 1, 4, 7, 10 olur. Ay için JAN-DEC, gün için SUN-SAT adları kullanılabilir.

Ayın günü ve haftanın günü birlikte kısıtlanırsa cron ikisinden birinin tutmasını yeterli sayar (POSIX). 0 0 1 * MON hem her ayın 1'inde hem de her Pazartesi çalışır.

@daily (0 0 * * *), @hourly (0 * * * *), @weekly (0 0 * * 0), @monthly (0 0 1 * *) ve @yearly (0 0 1 1 *) kısaltmaları da çözülür.

Sonraki çalışma zamanları başlangıç anından (dahil) itibaren Türkiye saatiyle (UTC+3) hesaplanır. Türkiye 2016'dan beri yaz saati uygulamadığı için saat kayması yoktur. Sunucun UTC kullanıyorsa ilk çalışmanın UTC karşılığına bak.

Formül

Alan sırası
dakika saat ayın-günü ay haftanın-günü
Adım
*/n = min, min + n, min + 2n, … ≤ max
Gün kuralı
iki gün alanı da kısıtlıysa: ayın günü tutar VEYA haftanın günü tutar

Örnek hesap

Aşağıdaki örnek, şu değerlerle (Cron ifadesi: */15 9-17 * * 1-5) hesaplayıcının kendisiyle hesaplanmıştır.

Örnek hesap adımları
AdımHesapDeğer
Ayrıştırmadakika saat ayın-günü ay haftanın-günü (0 ve 7 = Pazar)*/15 9-17 * * 1-5
Başlangıçbu andan itibaren (dahil), Türkiye saati UTC+32026-11-02 00:00
AnlamıPazartesi-Cuma günleri, her 15 dakikada bir, saatler: 09-17
Örneğin tablosu (5 satır)
AlanYazılanDeğerler
Dakika*/150, 15, 30, 45
Saat9-179-17
Ayın günü*31 değer
Ay*1-12
Haftanın günü1-51-5

Kaynaklar

Son güncelleme: (içerik ya da kullanılan verinin son değiştiği ya da kontrol edildiği tarih).

Hesaba katılmayanlar

  • Saniye alanı olan 6 ya da 7 alanlı biçimler (Quartz, Spring) ve L, W, # gibi özel işaretler desteklenmez.
  • Sunucunun saat dilimi ayrıca belirtilmemişse cron sistem saatine göre çalışır; sonuçlar Türkiye saatine göredir. Yaz saati uygulayan bir ülkedeki sunucuda geçiş günlerinde görev atlanabilir ya da iki kez çalışabilir.
  • Sistem yoğunluğu, cron servisinin kapalı olması ya da anacron/systemd zamanlayıcı farklılıkları hesaba katılmaz.

Sıkça sorulan sorular

*/5 * * * * ne demek?

Her 5 dakikada bir: her saatin 0, 5, 10, …, 55. dakikalarında çalışır.

Cron her gün gece yarısı nasıl yazılır?

0 0 * * * ya da @daily. Gece 03:00 için 0 3 * * * yazılır.

Hafta içi her sabah 9'da çalıştırmak için ne yazmalıyım?

0 9 * * 1-5. 1 Pazartesi, 5 Cuma'dır. Adlarla 0 9 * * MON-FRI da yazılabilir.

0 ile 7 neden ikisi de Pazar?

Eski Unix sistemleri haftayı Pazar = 0 ile başlatır; bazı uygulamalar 7'yi de Pazar kabul eder. Hesaplayıcı ikisini de Pazar olarak okur.

Cron görevim neden yanlış saatte çalışıyor?

En sık neden saat dilimidir. Bulut sunucuları çoğu zaman UTC kullanır; Türkiye saati UTC+3 olduğu için görev 3 saat erken (yerel saatle) çalışır. timedatectl ile sunucu saat dilimini kontrol et.