Cron ifadesi ne anlama gelir
Standart bir cron ifadesi boşlukla ayrılmış beş alandan oluşur: dakika, saat, ayın günü, ay ve haftanın günü. Yıldız her değer demektir, virgül liste ayırır (1,15), tire aralık belirtir (9-17), eğik çizgi adım verir (*/15 her 15 dakikada bir demektir). Yani 30 2 * * 1-5 ifadesi Pazartesiden Cumaya gece 02:30'da çalışır.
Herhangi bir ifadeyi yapıştırdığında araç onu bir cümleyle anlatır, alanları tek tek listeler ve sonraki on çalışma zamanını hesaplar. @daily ve @hourly gibi kısayolları da tanır. Bir yanlışlık varsa belirsiz bir sözdizimi hatası yerine hangi alanda ve hangi konumda olduğunu söyler.
Deneyimlileri bile yanıltan tuzaklar
Ayın günü ve haftanın günü birlikte ayarlandığında klasik cron ikisinden birine uyan günlerde çalışır, ikisine birden uyan günlerde değil: 0 0 13 * 5 her ayın 13'ünde ve her Cuma çalışır. Bu iki alandan biri */2 gibi yıldızla başlıyorsa iki alanın da uyması gerekir. Bu durum geçerli olduğunda açıklama bunu ayrıca belirtir.
Cron, çalıştığı makinenin saat dilimini kullanır. Saatlerin ileri alındığı ülkelerde 02:30'a kurulu bir iş o gece çalışmaz, saatler geri alındığında 01:30'a kurulu bir iş aynı saate iki kez denk gelebilir. Hangi günlerin etkilendiğini görmek için çalışma listesinde sunucunun saat dilimini seç. 31. günü olmayan aylar ise doğrudan atlanır.
Standart, saniyeli ve Quartz
Linux crontab, Kubernetes CronJob ve GitHub Actions beş alanlı biçimi kullanır. Bazı kütüphaneler başa bir saniye alanı ekler. Birçok Java zamanlayıcısının kullandığı Quartz'da saniye ve isteğe bağlı yıl alanı vardır, haftanın günleri Pazardan başlayarak 1 ile 7 arasında numaralanır ve gün alanlarından birinde ? zorunludur. Ayrıca ayın son günü için L, en yakın iş günü için W ve ayın n'inci haftanın günü için # ekler. Sözdizimini en üstten seç; değiştirdiğinde ifade mümkün olduğunca otomatik çevrilir.