Cron ifadesi söz dizimi
Cron ifadesi, bir şeyin ne zaman çalışacağını açıklayan beş alandır. Her alan biriminin hangi değerlerinin kabul edilebilir olduğunu söyler ve iş, tüm beşin aynı fikirde olduğu her dakikada çalışır. Bu bütün modeldir: süre yoktur, "her 90 dakikada" yoktur ve sonraki çalışma durumu hiçbir yerde tutulmaz.
Alanlar soldan sağa dakika, saat, ay günü, ay, haftanın günü olarak okunur. Alttaki örnekler insanların gerçekten ulaştıkları şeylerdir ve bu sayfa inşa edilmeden önce her biri kendi cron ayrıştırıcısından geçer.
Son bölüm cron gibi görünen ancak burada kabul edilmeyen söz dizimini listeler: Quartz ve Jenkins uzantıları ve saniyeli altı alan formu. Bunları tanımakça birkaç belge tutmak faydalıdır, çünkü kopyalanan ifade bu araçlardan birini kullanıyorsa basitçe başarısız olur.
Beş alan
7Cron satırı boşluklarla ayrılmış beş alandan sonra komut içerir. Her alan bulunmalı; hiçbiri atlanamaz.
| İfade | Aralık | Anlamı |
|---|---|---|
| * * * * * | min hod dom mes dow | Beş alan sırasında: dakika, saat, ay günü, ay, haftanın günüBeş yıldız her günün her dakikası anlamına gelir — en gevşek ifade. |
| minute | 0-59 | Birinci alan |
| hour | 0-23 | İkinci alan, 24 saatlik saatte |
| day of month | 1-31 | Üçüncü alanBelirli bir ayda olmayan gün basitçe atlanır — 31 yılda yedi kez, on iki değil. |
| month | 1-12 | Dördüncü alan |
| day of week | 0-7 | Beşinci alan, Pazar ilkHem 0 hem 7 Pazar anlamına gelir, bu yüzden aralık altıya değil yediye gider. |
| 0 5 13 * 5 | Her iki gün alanı kısıtlandığında, cron her birinde ateşler — her ikisinde değilBu 13. ve her cuma çalışır, bu yüzden "13. cuma" değildir. Bu cron'un herkesin şaşırdığı tek kuralıdır. |
İşleçler
10Aynı dört işleç her alanda çalışır; sadece kabul ettikleri sayılar aralığı değişir.
| İfade | Aralık | Anlamı |
|---|---|---|
| * | Alanın izin verdiği her değer | |
| 1,15,30 | Bireysel değerlerin listesi | |
| 9-17 | Her iki uç dahil aralık | |
| */15 | Tüm alan genelinde her n'inci değerDakika alanında */15 :00, :15, :30 ve :45 anlamına gelir — şimdiden değil aralığın başından sayılır. | |
| 9-17/2 | Bir aralık içinde her n'inci değer | |
| 5/10 | Başlangıç noktasından alanın sonuna her n'inci değer | |
| 0,30 9-17 * * 1-5 | İşleçler herhangi bir alanda serbestçe birleşirYarımdan her saat, dokuz ile beş arası, Pazartesi'den Cuma'ya. | |
| JAN-DEC | 1-12 | Ay adları, üç harf, büyük harf duyarlı değil |
| SUN-SAT | 0-6 | Gün adları, üç harf, büyük harf duyarlı değil |
| 7 | 0 | Pazar, diğer yol yazılı |
Kısayol makroları
7Tüm ifadeyi temsil eden yedi ad. Bunlar alan gramerinin değil crontab dosya biçiminin bir kolaylığıdır, bu yüzden cron dizelerini okuyan bir planlayıcı mutlaka bunları kabul etmez.
| İfade | Aralık | Anlamı |
|---|---|---|
| @hourly | 0 * * * * | Her saatin başında |
| @daily | 0 0 * * * | Günde bir kez gece yarısında |
| @midnight | 0 0 * * * | @daily ile aynı |
| @weekly | 0 0 * * 0 | Haftada bir kez, Pazar gece yarısında |
| @monthly | 0 0 1 * * | Ayın birinci günü gece yarısında |
| @yearly | 0 0 1 1 * | 1 Ocak'ta gece yarısında |
| @annually | 0 0 1 1 * | @yearly ile aynı |
Çalışılmış örnekler
14İfade mantıklı olmayı durdurduğunda sağdan sola okuyun: en kaba alan sağ tarafta ve daha ince olanların hangi günlerde değerlendirildiğine karar verir.
| İfade | Aralık | Anlamı |
|---|---|---|
| * * * * * | Her dakika | |
| */5 * * * * | Her beş dakika | |
| 0 * * * * | Her saat, saat başında | |
| 0,30 * * * * | Her yarım saat | |
| 0 3 * * * | Her gün 03:00'te | |
| 0 9,17 * * * | Günde iki kez, 09:00 ve 17:00'de | |
| */15 9-17 * * 1-5 | İş günleri çalışma saatleri sırasında her 15 dakikada bir | |
| 0 8 * * 1-5 | İş günleri 08:00'de | |
| 0 10 * * 6,0 | Cumartesi ve Pazar 10:00'de | |
| 30 7 * * MON | Pazartesi 07:30'da | |
| 0 0 1 * * | Her ayın ilk gününde gece yarısında | |
| 0 0 28-31 * * | Ayın son bölümündeki her günStandart cron "ayın son günü" bilmez. Bu dört kata kadar çalışır; yazılımcı tarih kontrolü yapan ve erken çıkan komut dosyasıdır. | |
| 0 0 1 1,4,7,10 * | Her çeyrekte ilk gün gece yarısında | |
| 0 0 1 1 * | Yılda bir kez, 1 Ocak'ın başında |
Bu sitede kabul etmediğimiz uzantılar
6Quartz, Jenkins ve bazı bulut zamanlamacılar bunları ekler. Birisi başkasının crontab'ında tanı diye listelenirler — bu sitedeki ayrıştırıcı her birini reddeder ve Linux ile gönderilen cron da.
| İfade | Aralık | Anlamı |
|---|---|---|
| ? | "Spesifik değer yok", diğerinin kısıtladığı gün alanında | |
| L | Ayın son günü veya son verilen haftanın günü | |
| 15W | 15. en yakın iş günü | |
| FRI#3 | Ayın üçüncü Cuma'sı | |
| */30 * * * * * | Saniye için altıncı alan, ön taraftaBeş değil altı alan. Quartz ve birkaç dil düzeyi kütüphanesi bu formu kullanır; crontab dosyası kullanmaz. | |
| @reboot | Makine başlarken bir kez çalıştırCrontab'da gerçek ancak rozet değil — hesaplanacak sonraki çalışma yoktur, bu yüzden buradaki ayrıştırıcı reddeder. |