Crontab Sonraki Çalışma Hesaplama

Bir cron ifadesi ve başlangıç zamanı girerek yaklaşan çalışma zamanlarını görün.

Nasıl hesaplanır?

Araç beş alanı şu sırayla okur: dakika saat ayın-günü ay haftanın-günü. Her alan *, sayı, a-b aralığı, a,b,c listesi ve */15, 1-5/2 ya da 5/10 gibi adım kabul eder (tek sayıya verilen adım o sayıdan alanın üst sınırına kadar işler; yani 5/10 5, 15, 25... dakikaları demektir). Haftanın günü 0-6 arasıdır, 7 de Pazar'dır. Başlangıç zamanından (UTC kabul edilir, boş bırakılırsa şu anki UTC) sonraki ilk tam dakikadan başlayarak her seferinde bir dakika ilerler ve uyan dakikaları listeler. Ayın günü ile haftanın günü birlikte kısıtlanmışsa, klasik cron gibi biri uyan gün yeterlidir; alanlardan biri * ile başlıyorsa ikisi de uymalıdır. En fazla 20 zaman listelenir (varsayılan 3) ve yaklaşık dört yıl ileriye bakılır. Aralık dışı değerler, MON gibi adlar, @daily gibi kısayollar ve 31 Şubat gibi var olmayan tarihler sonuç göstermez.

Örnek hesaplama

0 3 * * 1-5 satırı; dakika 0, saat 3, ayın herhangi bir günü, herhangi bir ay, Pazartesi-Cuma demektir. Başlangıç zamanı 2026-10-20 12:00 UTC, bir Salı; o günün 03:00'ü geçmiş. Sonraki eşleşme Çarşamba olduğundan araç 2026-10-21 03:00 UTC sonucunu verir; ardından 2026-10-22 ve 2026-10-23, sonra Pazartesi 2026-10-26 (Cumartesi ve Pazar atlanır) ve istenen beş çalışmanın beşincisi olarak 2026-10-27 gelir.

Bu örneği dene →

Sık yapılan hatalar

  • 0 0 13 * 5 satırının “yalnızca Cuma gününe denk gelen 13'ü” demek olduğunu sanmak. İki gün alanı da kısıtlıysa cron, ayın 13'ünde ya da herhangi bir Cuma günü çalışır. 14 Kasım 2026'dan başlarsanız liste her Cuma'yı ve ayrıca Pazar günü 13 Aralık'ı gösterir.
  • Tüm saatlerin UTC olduğunu unutmak. Kendi saat diliminizde 03:00 için yazılmış bir görev burada farklı bir saatte görünür.
  • 5/10 ifadesini “her saat 5. dakikada bir kez” diye okumak. Aslında 5. dakikadan itibaren her 10 dakikada bir demektir; her saat 5, 15, 25, 35, 45 ve 55'te çalışır.
  • MON, JAN gibi adlar ya da @daily yazmak. Yalnızca sayı kabul edilir; 1 ve 0 0 * * * kullanın.
  • Beş alanlı cron satırına altı alan (saniyeli) yazmak ya da 0 0 31 2 * gibi hiç var olmayan bir tarih girmek. İkisi de sonuç vermez.

Bu hesaplama hakkında

Standart bir Unix crontab ifadesi, dakika, saat, ayın günü, ay ve haftanın günü olmak üzere boşlukla ayrılmış beş alan kullanır; her biri sayı, aralık, liste, joker karakter (*) ve adım değerleri (her 15 birimde bir için */15 gibi) kabul ederek “0 3 * * 1-5” gibi hafta içi saat 3'te çalışan tekrarlayan bir zamanlama tanımlar. Böyle bir ifadenin bir sonraki ne zaman tetikleneceğini bulmak, tüm beş alanı ayrıştırmayı ve zamanı ileri doğru simüle etmeyi gerektirir; bu, özellikle adım değerleri veya haftanın günü/ayın günü etkileşimleri söz konusu olduğunda elle yapıldığında kolayca hataya yol açar.

Sistem yöneticileri, arka uç geliştiricileri ve DevOps mühendisleri, yedeklemeler, log döndürme, toplu veri işleme veya otomatik dağıtımlar için bir cron görevi yazarken veya incelerken, üretim sunucusunda gözetimsiz çalışmadan önce zamanlamanın gerçekten amaçlandığı gibi eşleştiğini doğrulamak için bu hesaplamayı kullanır.

Bu hesap makinesi, 5 alanlı crontab ifadenizi bir başlangıç UTC zamanına göre ayrıştırır ve sonraki birkaç çalışma zamanını listeler; böylece yanlış yazılmış bir cron satırının bir görevin saat 15 yerine saat 3'te ya da her saat yerine her dakika çalışmasına neden olmasını önceden fark edebilirsiniz.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar