Cron ifadesi oluşturucu
Bir cron zamanlaması yaz, tam olarak ne zaman çalıştığını gör.
Sonraki 10 çalışma
Cron sözdizimi kopya kağıdı
| Alan | İzin verilen değerler |
|---|---|
| Dakika | 0-59 |
| Saat | 0-23 |
| Ayın günü | 1-31 |
| Ay | 1-12 veya JAN-DEC |
| Haftanın günü | 0-6 veya SUN-SAT (7 de Pazar sayılır) |
| Sembol | Anlamı |
|---|---|
* | Her değer |
, | Değer listesi, örneğin 1,15 |
- | Bir aralık, örneğin 1-5 |
/ | Bir adım, örneğin her 15. değer için */15 |
Tarayıcında çalışır. Yazdığın hiçbir şey bir yere gönderilmez.
- Sade açıklama
- Sonraki 10 çalışma saati
- Yaygın işler için şablonlar
Bir cron ifadesi nasıl yazılır
- Bir şablon seç, veya beş alanlı bir ifade yaz.
- Altındaki kutularda tek tek alanları ince ayarla.
- Açıklamayı ve sonraki çalışma saatlerini kontrol et, sonra ifadeyi kopyala.
Yaygın cron zamanlamaları
| Zamanlama | İfade | Anlamı |
|---|---|---|
| Her dakika | * * * * * | Saatte 60 kez çalışır |
| Her 5 dakikada bir | */5 * * * * | :00, :05, :10 ve böyle devam eder |
| Her gece saat 2'de | 0 2 * * * | 24 saatte bir kez |
| Hafta içi saat 9'da | 0 9 * * 1-5 | Sadece Pazartesi-Cuma |
| Ayın ilk günü | 0 0 1 * * | 1. günde gece yarısı |
| Her 6 saatte bir | 0 */6 * * * | Gece yarısı, 06:00, öğlen, 18:00 |
Cron sistemler arasında nasıl farklılaşır
Aşağıdaki 5 alanlı format bu oluşturucunun ürettiği formattır, ve çoğu iş zamanlayıcının doğrudan kullandığı format da budur.
| Sistem | Alan sayısı | Not |
|---|---|---|
| Standart cron / crontab | 5 | Dakika, saat, ayın günü, ay, haftanın günü |
| Kubernetes CronJob | 5 | Aynı format, YAML içinde string olarak tırnaklanır |
| GitHub Actions | 5 | on.schedule.cron altında ayarlanır, her zaman UTC'de çalışır |
| Quartz (Java) | 6 veya 7 | Dakikadan önce bir saniye alanı ekler |
| AWS EventBridge | 6 | Bir yıl alanı ekler, ayın günü veya haftanın günü için ? kullanır |
İfadeyi buradan bir Quartz veya AWS zamanlamasına kopyala ve beklediği ekstra alanı ekle; dakika, saat, gün, ay ve haftanın günü konumları aynı kalır.
Cron zamanlaması yazma ipuçları
- Uzun bir liste yerine bir adımı tercih et: */15 * * * *, 0,15,30,45 * * * *'ten daha kısa ve daha net.
- Hem ayın günü hem haftanın gününü ayarlamak göründüğü kadar az kısıtlar: standart cron, ikisi de değil, biri eşleştiğinde işi çalıştırır.
- Bir sunucuya yapıştırmadan önce zamanlamayı burada test et. Tek bir yanlış alan, günlük bir işi her dakika çalışan bir işe dönüştürebilir.
- Sunucular cron'u genelde UTC'de çalıştırır. Yukarıdaki sonraki çalışma listesi kendi saat diliminde gösterilir, bu yüzden bir işin zamanında çalıştığını varsaymadan önce çevir.
Cron ifadesi oluşturucu SSS
Bir cron ifadesindeki beş alan ne anlama gelir?
Soldan sağa: dakika (0-59), saat (0-23), ayın günü (1-31), ay (1-12) ve haftanın günü (0-6, 0 Pazar demek). Yıldız işareti her değer anlamına gelir, bu yüzden * * * * * her dakika çalışır.
Bir cron işini her 5 dakikada bir nasıl çalıştırırım?
*/5 * * * * kullan. /5, her beşinci değer demektir, yani her günün her saatinde 0, 5, 10 dakikalarında ve böyle devam ederek çalışır.
Hem ayın günü hem haftanın günü ayarlarsam ne olur?
Standart cron, ikisinden biri eşleştiğinde işi çalıştırır. 0 0 1 * 1 her ayın 1'inde gece yarısı ve ayrıca her Pazartesi çalışır.
Cron hangi saat dilimini kullanır?
İşi çalıştıran sunucunun saat dilimini, ki bu genelde UTC'dir. Bu sayfadaki çalışma saatleri kendi saat dilimindedir, bu yüzden sunucun farklı ayarlıysa bunları çevir.
Bu format Kubernetes, GitHub Actions, Quartz veya AWS için çalışır mı?
Kubernetes CronJob'ları ve GitHub Actions zamanlamaları aynı 5 alanlı formatı kullanır. Quartz bir saniye alanı ekler, AWS EventBridge ise bir yıl alanı ekler ve gün alanlarından birinde ? kullanır, bu yüzden bunların ayarlanması gerekir.
Bir işi sadece hafta içi veya sadece hafta sonu nasıl çalıştırırım?
Pazartesiden Cumaya için haftanın gününü 1-5 yap, Cumartesi ve Pazar için 0,6 yap. Ayın günü ve ayı * olarak bırak ki başka bir şeyi kısıtlamasınlar.
@daily ve @hourly gibi kısayollar ne anlama gelir?
Bazı cron uygulamalarının beş alan yerine kabul ettiği makrolardır. @hourly, 0 * * * * demektir, @daily, 0 0 * * * demektir, @weekly, 0 0 * * 0 demektir, @monthly, 0 0 1 * * demektir ve @yearly, 0 0 1 1 * demektir. Bunlardan herhangi birini buradaki ifade kutusuna yaz, otomatik olarak genişler.