Cron ifadesi açıklayıcı
Bir crontab zamanlamasını sade Türkçeyle okuyun ve herhangi bir saat diliminde sonraki çalışma zamanlarını listeleyin.
Tamamen tarayıcınızda çalışır
- Dakika
- Saat
- Ayın günü
- Ay
- Haftanın günü
Sonraki çalışmalar
Vixie cron, cronie ve çoğu Linux sisteminde kullanılan standart beş alanlı cron (dakika, saat, ayın günü, ay, haftanın günü) ve @daily gibi kısayollar. Quartz ve saniye alanlı diğer biçimler algılanır ancak açıklanmaz.
Cron ifadesi nasıl denetlenir?
*/15 9-17 * * 1-5gibi beş zamanlama alanını yazın ya da yapıştırın veya bir örnek seçin. Tam bir crontab satırı da çalışır; beşinci alandan sonraki komut yok sayılır.- Sade Türkçe özeti ve her alanın dökümünü okuyun. Bir hata, oluştuğu alanda gösterilir.
- Sonraki çalışma zamanları listesine bakın. Sunucunun çalıştığı saat dilimini seçin; ileriye bakmak istiyorsanız farklı bir başlangıç zamanı seçin.
Cron zamanlamasını okumak
Cron tablosunu dakikada bir denetler ve aşağıda açıklanan iki gün alanı için tek bir istisna dışında, beş alanı da geçerli zamanla eşleşen her işi çalıştırır. Yani */15 9-17 * * 1-5 şu anlama gelir: 9 ile 17 arasındaki saatlerde, 0., 15., 30. ve 45. dakikalarda, ayın herhangi bir gününde, herhangi bir ayda, Pazartesi'den Cuma'ya. Günün son çalışması 17:45'tedir, çünkü saat alanı 17. saatin tamamını kapsar.
Açıklayıcı her alanı, çoğu Linux dağıtımının sunduğu Vixie cron ve cronie'nin yaptığı gibi çözümler. Ay ve hafta günü adları herhangi bir harf biçiminde kabul edilir ve 7 Pazar sayılır. 5/10 gibi tek bir sayıdan sonraki adım, birçok cron sürümünün okuduğu gibi 5-59/10 olarak okunur; bazı eski sürümler bunu reddeder, bu yüzden araç aralığı açık yazmanızı hatırlatır. Aralıklar küçükten büyüğe gitmelidir: standart cron aralıkları başa sarmadığından FRI-MON başa sarılmak yerine işaretlenir.
Sonraki çalışma zamanları, seçtiğiniz saat diliminde takvimde adım adım ilerlenerek hesaplanır; bu yüzden yalnızca 29 Şubat'ta eşleşebilen bir ifade bir sonraki artık yılı hemen bulur, hiçbir zaman eşleşemeyen bir ifade ise, örneğin 0 0 31 2 *, hiç çalışmayacak diye bildirilir.
İpuçları
- Bir günlükteki çalışma zamanını Unix zaman damgasına ya da tersine Unix zaman damgası çevirici ile dönüştürün.
- Bir işin günlüğünü süzmek için kullandığı deseni mi test ediyorsunuz? Regex test aracı aracını deneyin.
- Zamanlamalar içeren bir JSON yapılandırmasının nasıl göründüğünü JSON biçimlendir ve doğrula ile kontrol edin.
Sık sorulan sorular
Beş alan ne anlama geliyor?
Sırasıyla: dakika (0-59), saat (0-23), ayın günü (1-31), ay (1-12 veya JAN-DEC) ve haftanın günü (0-7 veya SUN-SAT; 0 ve 7'nin ikisi de Pazar'dır). Her alan tek bir değer, 1,15 gibi bir liste, 9-17 gibi bir aralık, */15 veya 0-30/10 gibi bir adım, ya da her değer için * alır.
İşim neden beklediğimden fazla günde çalışıyor?
Hem ayın günü hem haftanın günü alanları kısıtlandığında cron, ikisine birden değil, bunlardan herhangi birine uyan günlerde çalışır. 0 9 1 * 1 her ayın 1'inde ve her Pazartesi çalışır. Vixie cron ve cronie böyle davranır. Aynı kuralın bir tuhaflığı: */2 gibi * ile başlayan bir alan kısıtlanmamış sayılır, bu durumda iki alanın da eşleşmesi gerekir.
Cron hangi saat dilimini kullanır?
Crontab CRON_TZ veya TZ ayarlamıyorsa, çalıştığı makinenin veya kapsayıcının saat dilimini. Birçok sunucu UTC üzerinde çalışır; gördüğünüz zamanlara güvenmeden önce bunu denetleyin. Çalışma zamanlarını görmek için listeden sunucunun dilimini seçin.
Yaz saati uygulaması için saatler değiştiğinde ne olur?
Liste, seçtiğiniz dilimdeki saati izler: saatler ileri alındığında atlanan bir zaman dışarıda bırakılır, saatler geri alındığında iki kez yaşanan bir zaman bir kez listelenir. Vixie cron ve cronie, atlanan bir saatte zamanlanmış bir işi değişiklikten kısa süre sonra çalıştırır ve tekrarlanan saatteki işleri yinelemez; diğer zamanlayıcılar değişir. Listelenen bir dönem bir değişiklik içeriyorsa bir not görünür.
Saniye veya Quartz söz dizimini destekliyor mu?
Hayır. Altı veya yedi alanlı ya da ?, L, W veya # içeren ifadeler, ilk alanın saniye olduğu Quartz, Spring ve benzeri zamanlayıcılardan gelir. Araç tahmin yürütmek yerine bunu söyler; çünkü onları standart cron gibi okumak yanlış zamanlama verirdi.
@daily, @hourly ve diğer kısayollar ne anlama geliyor?
@hourly, 0 * * * *; @daily ve @midnight, 0 0 * * *; @weekly, 0 0 * * 0; @monthly, 0 0 1 * *; @yearly ve @annually ise 0 0 1 1 * demektir. @reboot, cron hizmeti başladığında bir kez çalışır; bu yüzden listelenecek zamanı yoktur.