Bir cron zamanlamasını çalışmadan önce anlayın
Cron ifadeleri sunucular, CI işleri, otomasyon platformları ve bakım betikleri tarafından kullanılan sıkıştırılmış zamanlama dizeleridir. Güçlüdürler, ancak küçük bir yazım hatası bir görevi günlükten her dakikaya veya hafta içinden hafta sonuna çevirebilir.
Bu ayrıştırıcı bir Unix 5 alanlı cron ifadesini sade bir dille açıklar, her alanı parçalar ve araçta seçtiğiniz zaman dilimini kullanarak gelecek çalışma zamanlarını gösterir.
Desteklenen cron lehçesi
v1 ayrıştırıcısı beş alanlı standart Unix cron'u destekler:
dakika saat ay-günü ay hafta-günü - Dakika değerleri 0 ile 59 arasındadır.
0to59. - Saat değerleri 0 ile 23 arasındadır.
0to23. - Ay-günü değerleri 1 ile 31 arasındadır.
1to31. - Ay değerleri 1 ile 12 arasındadır.
1to12, örneğin JAN ve DEC gibi adları da destekler.JANandDEC. - Hafta-günü değerleri 0 ile 7 arasındadır.
0to7, örneğin JAN ve DEC gibi adları da destekler.MONandFRI. Her ikisi de0and7Pazar anlamına gelir.
Joker (*), virgülle ayrılmış listeler, aralıklar ve */15 veya 9-17/2 gibi adım değerlerini destekler. */15 or 9-17/2.
Bilerek desteklenmeyenler
Cron lehçeleri evrensel değildir. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions ve barındırma platformları kendi alanlarını veya özel operatörlerini ekleyebilir.
- Saniye alanları ve yıl alanları Unix cron olarak ayrıştırılmaz.
- Quartz operatörleri (ör.
?,L,W, ve#desteklenmeyen olarak bildirilir. - Makrolar (ör.
@dailyand@rebootgenişletilmez. - Zamanlama ifadesinden sonra gelen komut metni ifade olarak ele alınmaz.
Bu sayfayı Unix tarzı zamanlamalar için bir denetleyici olarak kullanın. Üretim otomasyonunu değiştirmeden önce işi çalıştıracak tam zamanlayıcıyı doğrulayın.
Zaman dilimi ve yaz/kış saati davranışı
Bir cron ifadesi kendi başına bir zaman dilimi içermez. Aynı ifade, sunucunun UTC, yerel sistem zaman dilimi veya zamanlayıcıya özgü bir zaman dilimi ayarı kullanmasına bağlı olarak farklı zamanlarda çalışabilir.
- Önizleme seçili IANA zaman diliminde ve UTC'de çalışma zamanlarını gösterir.
- İleri alma (spring-forward) geçişleri var olmayan yerel duvar saati zamanlarını atlayabilir.
- Geri dönüş (fall-back) geçişleri yerel duvar saati zamanını tekrarlayabilir; zamanlayıcı davranışı farklılık gösterebilir.
- Hem ay-günü hem de hafta-günü kısıtlandığında, Unix cron genelde OR (VEYA) mantığını kullanır.
Kritik işler için önizlemeyi bir planlama aracı olarak kabul edin ve davranışı zamanlayıcı içinde doğrulayın.
Sıkça Sorulan Sorular
Bu Quartz cron'u destekliyor mu?
Hayır. Ayrıştırıcı yalnızca Unix 5 alanlı cron'u destekler. Quartz tarzı saniye alanları, yıl alanları ve ?, L, W ve # gibi operatörler ?, L, W, ve # desteklenmeyen olarak gösterilir.
Bir cron ifadesi hangi zaman dilimini kullanır?
Cron ifadeleri zaman dilimi bilgisi taşımaz. Önizleme araçta seçilen zaman dilimini kullanır, ancak sunucunuz veya zamanlayıcınız farklı bir zaman dilimi kullanıyor olabilir.
Neden ay-günü ve hafta-günü her ikisi de eşleşebilir?
Yaygın Unix cron davranışında, her iki alan da kısıtlandığında, bir tarih herhangi bir alan eşleşirse eşleşir. Örneğin, 0 0 1 * MON ayın ilk gününde ve Pazartesi günleri çalışabilir.
crontab'den komut bölümünü yapıştırabilir miyim?
Yalnızca beş zamanlama alanını yapıştırın. Araç bir zamanlama ayrıştırıcısıdır, tam bir crontab ayrıştırıcısı değildir; bu yüzden zamanlamadan sonra gelen komut metni yorumlanmaz.