Cron İfadesi Açıklayıcı

Zamanlamasını sade dille okumak için 5 alanlı bir cron ifadesi yapıştırın.

Sonuç

Saat 02:30, Pazartesi ile Cuma arası.
dakika: 30 saat: 2 ayın-günü: * ay: * haftanın-günü: 1-5
30 2 * * 1-5

Nasıl hesaplanır?

İfade, boşlukla ayrılmış tam olarak beş alan içermelidir ve sıra şöyledir: dakika saat ayın-günü ay haftanın-günü. Her alan kendi aralığına göre denetlenir (dakika 0-59, saat 0-23, gün 1-31, ay 1-12 ya da jan-dec, hafta günü 0-7 ya da sun-sat); adımlar (*/15), aralıklar (9-17) ve virgüllü listeler (1,3,5) anlaşılır. Aralık dışı, boş ya da bozuk bir alan ve @daily gibi kısayollar sonuç vermez. Araç sonra tek bir cümle kurar: bir saat (Saat 02:30 ya da Her dakika), ardından ayın günü, ay adları ve gün adları sayfa dilinde yazılır. İki gün alanı da doluysa standart cron biri tutunca işi çalıştırır; cümle bunu belirtir. Döküm, beş alanı yazdığınız hâliyle listeler. Araç tarihin var olup olmadığına bakmaz; bu yüzden Şubat için 31. gün de bir cümle alır.

Örnek hesaplama

30 2 * * 1-5 yazın. Dakika 30, saat 2 olduğundan zaman 02:30 diye okunur. Ayın günü ve ay alanları yıldızdır, bir şey eklemez; haftanın günü aralığı 1-5 ise Pazartesi'den Cuma'ya dönüşür. Aracın yazdığı açıklama şudur: Saat 02:30, Pazartesi ile Cuma arası. Yani iş hafta içi her gün sabah 02:30'da çalışır; altındaki döküm her alanı ayrı bir satırda gösterir.

Bu örneği dene →

Sık yapılan hatalar

  • Hem ayın gününü hem haftanın gününü ayarlamak, örneğin 0 0 1 * 1. İkisinin birden doğru olması gerekiyormuş gibi okunur, ama standart cron biri tutunca çalışır; yani iş ayın 1'inde ve her Pazartesi tetiklenir. Araç bunu gördüğünde cümleye bir not ekler.
  • Her 15 dakikada bir demek isterken */15'i saat alanına yazmak. Alan sırası önemlidir: */15 * * * * her 15 dakikada bir, 0 */15 * * * ise her 15 saatte bir, tam saatte çalışır.
  • Saniyeli altı alanlı bir ifade, Quartz tarzı ? ya da @daily gibi bir kısayol yapıştırmak. Yalnızca beş standart alan kabul edilir; başka her şey sonuçsuz kalır.
  • Cümlenin çıkmasını işin gerçekten çalışacağına kanıt saymak. 0 0 31 2 * (31 Şubat) hiçbir zaman gerçekleşmez, ama normal bir cümleyle açıklanır.
  • Saat 24'ü gece yarısı sanmak. Saatler 0 ile 23 arasındadır; 0 24 * * * reddedilir, gece yarısı için 0 0 * * * yazın.

Bu hesaplama hakkında

Bir cron ifadesi, Unix benzeri sistemlerde tekrarlayan işleri boşlukla ayrılmış beş alan kullanarak zamanlar — dakika, saat, ayın günü, ay ve haftanın günü — bu alanların her biri belirli bir sayı, bir aralık, virgülle ayrılmış liste, “her biri” anlamına gelen yıldız işareti veya */15 gibi bir adım değeri olabilir. Bunları doğru okumak sanıldığından zordur: 0 0 1 * * her ayın birinde gece yarısı çalışır demektir, her saat başı değil; alan sırasını karıştırmak yaygın bir zamanlama hatası kaynağıdır.

Sistem yöneticileri, DevOps mühendisleri ve backend geliştiricileri, yedeklemeleri, rapor oluşturmayı ve bakım betiklerini otomatikleştirmek için cron ve cron uyumlu zamanlayıcıları (Kubernetes CronJob'ları ve birçok CI/CD hattı dahil) kullanır; bir ifadeyi devreye almadan önce bunun gibi sade dilde açıklamalarla doğruluğunu kontrol eder.

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