Cron İfadesi Ayrıştırıcı nedir?
Cron, Unix/Linux cron işlerinde, CI/CD pipeline'larında, Kubernetes CronJob'larında ve sayısız görev zamanlayıcısında kullanılan standart zamanlama sözdizimidir. Bir cron ifadesi, tüm tekrarlayan bir zamanlamayı beş kompakt alana sıkıştırır; bu güçlü olmakla birlikte tek bakışta okunması ünlü şekilde zordur — "0 */4 * * 1-5" hafta içi her 4 saatte bir mi demek, yoksa tamamen başka bir şey mi?
Bu ayrıştırıcı, bir cron ifadesini alan alan çözümler ve sade bir Türkçe cümleye çevirir; böylece bir zamanlamayı devreye almadan önce doğru olduğunu doğrulayabilir veya bir cron sözdizimi tablosuna başvurmadan başkasının yazdığı bir zamanlamayı hızlıca anlayabilirsiniz.
Bu Hesap Makinesi Ne Zaman Kullanılmalı
- Planlanmış bir görevi veya CI/CD pipeline'ını devreye almadan önce bir cron zamanlamasını doğrulama
- Planlanmış bir işin neden beklenmedik bir zamanda çalıştığını (veya çalışmadığını) hata ayıklama
- Bir ekip arkadaşının yazdığı bir Kubernetes CronJob'ını veya GitHub Actions zamanlamasını inceleme
- Sistem yöneticisi veya DevOps sertifikasyon kursu için cron sözdizimini öğrenme
- Bir sunucu geçişi sırasında mevcut crontab girişlerini denetleme
- Birkaç zaman kısıtlamasını birleştiren karmaşık bir zamanlama kalıbı tasarlama
Adımlar:
- Giriş alanına 5 alanlı bir cron ifadesi yapıştırın veya yazın.
- Her alanın anlamıyla birlikte ayrı ayrı gösterildiğini görün.
- Tüm zamanlamanın sade Türkçe çevirisini okuyun.
- "Her saat başı" veya "hafta içi saat 9'da" gibi yaygın zamanlamalar için bir ön ayar düğmesi deneyin.
Formül
┌───────────── dakika (0-59)
│ ┌───────────── saat (0-23)
│ │ ┌───────────── ayın günü (1-31)
│ │ │ ┌───────────── ay (1-12)
│ │ │ │ ┌───────────── haftanın günü (0-6, Pazar=0)
│ │ │ │ │
* * * * *
Kullanım Alanları
- Zamanlanmış bir görevi veya CI/CD pipeline'ını devreye almadan önce bir cron zamanlamasını doğrulama
- Bir ekip arkadaşının yazdığı bir Kubernetes CronJob'ını veya sunucusuz zamanlanmış bir fonksiyonu anlama
- Zamanlanmış bir işin neden beklenmedik bir zamanda çalıştığını (veya çalışmadığını) hata ayıklama
- Bir sistem yöneticisi veya DevOps kursu için cron sözdizimini öğrenme
- Bir sunucu geçişi sırasında mevcut crontab girişlerini denetleme
Temel Faydalar
- Anlaşılması zor cron sözdizimini anında sade Türkçeye çevirir
- Netlik için 5 alanın her birini ayrı ayrı çözümler
- En yaygın zamanlama kalıpları için tek tıkla ön ayarlar
- Kayıt gerektirmez, tamamen tarayıcınızda çalışır
Uzman İpuçları
- Şüpheye düştüğünüzde, zamanlamanın beklendiği gibi tetiklendiğini doğrulamak için önce çok yakın bir gelecek zamanla test edin
- Mümkün olduğunda, okunabilirlik için her değeri virgülle listelemek yerine aralıklar (1-5) kullanın
- Sunucunuzun veya zamanlayıcınızın saat dilimi ayarını iki kez kontrol edin — bu, "yanlış zaman" cron hatalarının en yaygın kaynağıdır
- Basit bir günlük/haftalık zamanlamadan daha karmaşık herhangi bir şey için, devreye almadan önce sade Türkçe açıklamayı yazın ve niyetinizle karşılaştırın
Kaçınılması Gereken Yaygın Hatalar
- Ayın günü ve haftanın gününün VE değil VEYA ile birleştirildiğini unutmak
- 0 tabanlı haftanın günü (0=Pazar) ile diğer sistemlerin 1 tabanlı kurallarını karıştırmak
- Ayın günü alanındaki */7'nin "her 7 günde bir" anlamına geldiğini varsaymak — aslında 1, 8, 15, 22, 29. günleri ifade eder ve her ay yeniden başlar
- Çoğu cron uygulamasının UTC veya kullanıcının saat diliminde değil, sunucunun yerel saat diliminde çalıştığını unutmak
Anahtar Terimler Açıklandı
- Cron: Unix benzeri işletim sistemlerinde kullanılan zamana dayalı bir görev zamanlayıcısı
- Crontab: Bir cron işleri listesini tanımlamak için kullanılan dosya veya komut
- Adım değeri: Bir alanın minimum değerinden başlayarak "her N birimde bir" anlamına gelen "/N" sözdizimi
- CronJob: Kubernetes'in cron zamanlamalı görevleri çalıştırmak için kullandığı yerel kaynağı
İlgili Kavramlar
- Zaman Farkı Hesaplayıcı: İki tarih ve saat arasındaki süreyi hesaplayın
- Kalan Gün Hesaplayıcı: Belirli bir tarihe kalan günleri sayın
- Unix Zaman Damgası Dönüştürücü: Unix zaman damgaları ve tarihler arasında dönüştürün
- Saat Dilimi Kesişimi Hesaplayıcı: Saat dilimleri arasında çalışma saatleri kesişimini bulun
- JSON Biçimlendirici: JSON verilerini biçimlendirin ve doğrulayın
Örnek
"0 9 * * 1-5" ifadesi şu şekilde çözümlenir: dakika=0, saat=9, ayın her günü, her ay, pazartesiden cumaya — anlamı "Saat 09:00'da, pazartesiden cumaya kadar."
Sonuçlarınızı Yorumlama
Ayrıştırıcı, 5 alanlı bir cron ifadesini bileşenlerine ayırır ve her birini basit Türkçeye çevirir. Beş alan şunlardır: dakika (0-59), saat (0-23), ayın günü (1-31), ay (1-12) ve haftanın günü (0-6, 0 pazar günüdür). Bir iş, beş alanın da mevcut zamanla eşleştiği anda çalışır — bu alanlar arasındaki VE mantığıdır.
Özellikle ayın günü ile haftanın günü arasındaki etkileşime dikkat edin, bu DA mantığı (VEYA değil) kullanır. 15 ve haftanın günü 5 olarak zamanlanmış bir iş, her ayın 15'inde VE her cuma çalışır — sadece 15'ine denk gelen cumalar değil.

