Cron İfade Çözücü
Bir cron ifadesi yazın; Türkçe açıklamasını, sonraki çalışma zamanlarını, alan alan dökümünü ve systemd/Windows eşdeğerlerini anında görün. Tamamen tarayıcınızda çalışır; girdiğiniz hiçbir veri sunucuya gönderilmez.
Pazartesi'den Cuma'ya her gün saat 02:30'da
SONRAKİ 10 ÇALIŞMA · UTC
Hesaplanıyor…
Yaz saati geçişleri cronie gibi ele alınır: ileri alınan saatteki belirli saatli işler geçişin hemen ardından bir kez çalışır; geri alınan saatte belirli saatli işler bir kez, joker (*) işler iki kez çalışır. Cron, sunucunun yerel saat dilimini kullanır (cronie'de CRON_TZ= ile değiştirilebilir).
ALAN ALAN DÖKÜM
| ALAN | DEĞER | ARALIK | ANLAMI |
|---|---|---|---|
| Dakika | 30 | 0–59 | 30 |
| Saat | 2 | 0–23 | 2 |
| Ayın günü | * | 1–31 | her gün (kısıtsız) |
| Ay | * | 1–12 · JAN–DEC | tümü |
| Haftanın günü | 1-5 | 0–7 · SUN–SAT | Pazartesi–Cuma= 1, 2, 3, 4, 5 |
Ayın günü ile haftanın günü: ikisi de kısıtlıysa (hiçbiri * ile başlamıyorsa) cron bunları VEYA ile birleştirir; biri * ise yalnız diğeri belirleyicidir.
EŞDEĞERLER
30 2 * * 1-5 /usr/local/bin/yedek.sh
[Timer] OnCalendar=Mon..Fri *-*-* 02:30:00 Persistent=true
Doğrulamak için: systemd-analyze calendar "Mon..Fri *-*-* 02:30:00". systemd'de haftanın günü ile tarih VE ile birleşir; bu yüzden cron'un VEYA kuralı iki ayrı OnCalendar= satırıyla karşılanır.
schtasks /Create /SC WEEKLY /D MON,TUE,WED,THU,FRI /ST 02:30 /TN "Gorev" /TR "C:\betik.cmd"
Nasıl çalışır?
Standart cron ifadesi beş alandan oluşur: dakika saat ayın-günü ay haftanın-günü. Her alan tek bir değer (5), liste (1,15), aralık (1-5), adım (*/15, 5-55/10) ya da her değer anlamına gelen * olabilir. Ay ve gün alanlarında JAN–DEC, SUN–SAT adları da geçerlidir.@daily, @weekly gibi makrolar beş alanlı karşılıklarına açılır.
Sonraki çalışma zamanları, seçtiğiniz saat diliminin duvar saati üzerinde gün gün taranarak bulunur; dönüşüm tarayıcının Intl.DateTimeFormat saat dilimi veritabanıyla yapılır. Ayın günü ve haftanın günü ikisi de kısıtlıysa Vixie cron kuralı gereği bir gün, bu alanlardan herhangi birine uyduğunda eşleşir. Hesaplamanın tamamı tarayıcıda yapılır.
Sık sorulan sorular
Ayın günü ve haftanın günü birlikte yazılırsa ne olur?
İkisi de kısıtlıysa cron bunları VEYA ile birleştirir: '0 0 13 * 5' ayın 13'ünde ve ayrıca her Cuma çalışır, yalnızca 13'üncü Cuma günlerinde değil. Alanlardan biri * ile başlıyorsa (ör. */2) Vixie cron onu kısıtsız sayar ve VE uygular.
0 ile 7 arasındaki farkı nedir, Pazar hangisi?
Haftanın günü alanında hem 0 hem 7 Pazar'dır; 1 Pazartesi, 6 Cumartesi. SUN, MON gibi İngilizce kısaltmalar da kullanılabilir. Quartz ve Spring'de numaralandırma farklıdır (1 = Pazar).
Quartz ifadelerindeki ?, L, W ve # neden kabul edilmiyor?
Bunlar Quartz/Spring zamanlayıcılarına özgüdür; Linux'taki cronie, Vixie cron ve systemd bunları tanımaz. Araç bu karakterleri görünce uyarır. Ayın son günü için standart cron'da '0 0 28-31 * *' ile betik içinde yarının 1'i olup olmadığını kontrol etmek gerekir.
Cron hangi saat dilimini kullanır?
Cron sunucunun yerel saat dilimini kullanır (timedatectl ile görülür). cronie'de crontab başına CRON_TZ=Europe/Istanbul satırı eklenebilir. Araçtaki saat dilimi seçimi sonraki çalışmaların o dilimde nasıl görüneceğini hesaplar.
Yaz saati geçişinde işim çalışır mı?
Türkiye'de yaz saati uygulanmaz. Avrupa ve ABD dilimlerinde cronie, ileri alınan saatteki belirli saatli işleri geçişten hemen sonra bir kez çalıştırır; geri alınan saatte bu işleri tekrar etmez. Her dakika ya da her saat çalışan joker işler yeni saate göre olağan şekilde çalışır.