İçeriğe atla
TextArray

Cron ifadelerini anlamak: bir geliştirici gibi programlar yazın

Blog /

Cron ifadeleri, otomatik görevlerin sunucularda, bulut platformlarında ve planlama araçlarında ne zaman çalıştırılacağını kontrol eder; ancak çoğu geliştirici, örnekleri kopyalamaya ve bunların işe yarayacağını ummaya başvurur. Cron sözdizimini anlamak, herhangi bir programı güvenle sıfırdan yazabileceğiniz, başarısız işlerdeki hataları daha hızlı ayıklayabileceğiniz ve hiç çalışmayan yedeklemeler gibi maliyetli hatalardan kaçınabileceğiniz anlamına gelir.

Cron ifadeleri nelerdir ve neden önemlidir?

Cron ifadesi, sisteme bir görevin tam olarak ne zaman yürütüleceğini söyleyen beş veya altı alandan oluşan kompakt bir dizedir. Dünya çapında Unix sunucuları, Linux, GitHub Actions, AWS EventBridge, Kubernetes ve CI/CD platformlarında standart formattır. "Bunu her Salı sabah saat 2'de yayınla" gibi düzyazı yazmak yerine şunu yazıyorsun: 0 2 * * 2ve cron arka plan programı bunu anında yorumlar. Onlarca yıldır neredeyse hiç değişmeden kalan bu gösterimi öğrenmek, herhangi bir şeyi planladığınız her seferde karşılığını veren tek seferlik bir yatırımdır.

Beş alan ve bunların aralıkları

Standart cron boşluklarla ayrılmış beş zorunlu alan kullanır. Bunları soldan sağa dakika, saat, ayın günü, ay ve haftanın günü olarak okuyun:

  1. Minute (0–59) — saatin hangi dakikasında çalıştırılacak
  2. Hour (0–23) — günün hangi saati (24 saatlik biçim)
  3. Day of month (1–31) — hangi takvim günü
  4. Month (1–12) — yılın hangi ayı
  5. Day of week (0–7) — haftanın hangi günü; burada hem 0 hem de 7 Pazar anlamına gelir

Her alan belirli bir değeri, aşağıdaki gibi bir aralığı kabul eder: 1-5, gibi bir liste 1,3,5veya bir joker karakter * "o alandaki her değer" anlamına gelir. Eğik çizgi operatörü aralıkları böler: */15 dakika alanında her 15 dakikada bir anlamına gelir.

Yazacağınız ortak kalıplar

Gerçek dünyadaki programların çoğu yalnızca birkaç yolu tekrar eder. Hafta içi sabah 9'da 0 9 * * 1-5. Her saat 0 * * * *. Ayın ilk günü gece yarısı: 0 0 1 * *. Tüm gün boyunca her 15 dakikada bir: */15 * * * *. Pazar günü günde bir kez saat 2:30'da: 30 2 * * 0. İfadenizin doğru olup olmadığından emin değilseniz, bunu bir cron ayrıştırıcı sonraki beş programlanmış çalıştırmayı görmek ve dağıtımdan önce amacınıza uygun olduğunu doğrulamak için.

Kendi cron ifadenizi oluşturun

İngilizce ile başlayın, ardından cron'a çevirin. "Hafta içi her gün 9:30" mu istiyorsun? Bu, pazartesiden cumaya, ayın herhangi bir günü, herhangi bir ayı, 30 dakika, 9 saattir. Alanlar olur 30 9 * * 1-5. "Günde iki kez sabah 7 ve akşam 6'da" için: 0 7,18 * * * (virgül saatleri ayırır). Her ayın 15'inde öğlen: 0 12 15 * *. Herhangi bir ifadeyi yazdıktan sonra, konuşlandırmadan önce yazım hatalarını yakalamak için her zaman ayrıştırıcıyla test edin.

Saat dilimlerini yönetin ve kesin saatleri doğrulayın

Cron ifadeleri sunucuya bağlıdır; yerel saat diliminizde değil, sistemin saat diliminde çalışırlar. Unix zaman damgasını doğrulamak veya cron'unuzun bölgenizde hangi yerel saatte ateşlendiğini görmek için zaman damgası dönüştürücü, tarayıcınızda çalışır ve herhangi bir yere veri göndermeden saat dilimi dönüşümlerini anında gerçekleştirir.

Programınızı bir takvim etkinliğine dönüştürün

Sağlam bir cron ifadeniz olduğunda onu paylaşın veya takviminize ekleyin, böylece görevin ne zaman çalıştığını görebilirsiniz. ICS jeneratörü bir başlangıç tarihini ve yinelenme kuralını, Apple Takvim, Google Takvim, Outlook veya herhangi bir standart takvim uygulamasına aktarılan bir takvim dosyasına dönüştürür. Alternatif olarak, doğrudan bir Google Takvim bağlantısı Google Takvim'de önceden doldurulmuş etkinliği tek tıklamayla açar; indirme gerekmez, dosya yönetimi gerekmez.

Cron programlarınız gizli kalır

Burada bahsedilen tüm araçlar tarayıcınızın içinde çalışır; hiçbir şey sunucuya yüklenmez. Cron ayrıştırma, zaman damgası dönüştürme, takvim oluşturma ve bağlantı oluşturma işlemlerinin tümü cihazınızda gerçekleşir. Hesap yok, izleme yok ve araçlar yüklendikten sonra çevrimdışı çalışıyor. Programlarınız ve otomasyon ayrıntılarınız yalnızca size ait kalır.