Cron İfadesi Ayrıştırıcı
Boşlukla ayrılmış beş alan ya da @daily gibi bir kısayol.
Devraldığınız crontab, 0 */2 * * 1-5 ve 30 3 * JAN,JUL 1 gibi satırlarla dolu. Bu ayrıştırıcı her alanı tam olarak eşleştiği değerlere açar; böylece */2 ifadesinin neyi kapsadığını tahmin etmek yerine seçtiği on iki saati ve yanlarındaki sayıyı görürsünüz. Ayrıca normalleştirilmiş 5 alanlı biçimi, ifade bilinen bir tuzağa düştüğünde bir uyarıyı ve kendi saat diliminize göre hesaplanmış sonraki 5 çalışma zamanını alırsınız.
Bir cron ifadesi nasıl ayrıştırılır
-
1
İfadeyi yapıştırın
5 alanlı bir satır (`* * * * *`): dakika, saat, ayın günü, ay ve haftanın günü. `@daily` gibi kısayollar da çalışır.
-
2
Alanların açılımını okuyun
Her alan, eşleştiği değerler ve bu değerlerin kaç tane olduğuyla birlikte listelenir; böylece saat alanındaki `*/2`, kapsadığı 0, 2, 4 ve diğer dokuz saati gösterir.
-
3
Sonraki çalışma önizlemesini kontrol edin
Gelecek 5 tetikleme zamanı, tarayıcınızda ve kendi saat diliminize göre hesaplanır. Niyetinizle örtüşmüyorlarsa ifadeyi düzeltin.
-
4
Uyarıları okuyun
Ayrıştırıcı tuzakları işaretler: iki gün alanının birden belirtilmesi, hiçbir zaman gerçekleşmeyecek bir tarih ya da standart cronda bulunmayan bir operatör.
Her alan neye açılır
Bir alan tek bir değer değil, bir kümedir. Bu kümenin ne kadar büyük olduğunu bilmek, buraya getirdiğiniz sorunun cevabını çoğu zaman tek başına verir.
| Alan | Aralık | * ile eşleşen |
Notlar |
|---|---|---|---|
| Dakika | 0-59 | 60 değer | Kontrolden çıkan görevlerin en yaygın kaynağı |
| Saat | 0-23 | 24 değer | 24 saatlik düzen, asla 1-12 değil |
| Ayın günü | 1-31 | 31 değer | Kısa aylar olmayan günleri basitçe atlar |
| Ay | 1-12 | 12 değer | JAN ile DEC arasındaki adlar da kabul edilir |
| Haftanın günü | 0-7 | 7 değer | 0 da 7 de Pazar demektir |
Bir alanın içindeki operatörler: * her değer, 1,5,10 bir liste, 1-5 bir aralık, */15 aralığın başından sayılan bir adım ve 0-45/15 bir aralığın içindeki adım.
Adlar ve kısayollar kabul edilir
Ay ve haftanın günü adları ayrıştırılır ve eşleştikleri sayılara açılır; bu yüzden 30 3 * JAN,JUL 1 satırında ay 1, 7, haftanın günü ise 1 olarak raporlanır. Adlandırılmış kısayollar ise, başka hiçbir şey çalışmadan önce 5 alanlı biçimlerine açılır:
| Kısayol | Açılımı | Anlamı |
|---|---|---|
@yearly, @annually |
0 0 1 1 * |
1 Ocak gece yarısı |
@monthly |
0 0 1 * * |
Her ayın 1’inde gece yarısı |
@weekly |
0 0 * * 0 |
Pazar gece yarısı |
@daily, @midnight |
0 0 * * * |
Her gün gece yarısı |
@hourly |
0 * * * * |
Her saat başı |
@reboot de tanınır, ama açılacak bir zamanlaması yoktur: makine açıldığında bir kez çalışır, dolayısıyla önizlenecek bir çalışma zamanı da yoktur.
Okumaya değer uyarılar
- İki gün alanı da sınırlandırılmış.
0 0 1 * MONsatırı “ayın 1’i, ama yalnızca Pazartesiye denk gelirse” demek değildir. Standart cron, iki gün alanı da sınırlandırıldığında bunları VEYA ile birleştirir; yani o satır her ayın 1’inde ve her Pazartesi tetiklenir. Ayrıştırıcı bu uyarıyı verir, çalışma zamanı önizlemesi de VEYA kuralına uyar. - Hiç gerçekleşmeyen bir tarih.
0 0 30 2 *30 Şubat tarihini ister. İfade sözdizimi açısından geçerlidir ve cron bunu kabul eder, ama hiçbir zaman tetiklenmez. Ayrıştırıcı, açıklamasız boş bir liste göstermek yerine bunu açıkça söyler. - Quartz operatörleri.
L(son),W(en yakın hafta içi gün),#(ayın n’inci hafta günü) ve?standart crontab’ın değil, Quartz’ın uzantılarıdır. 5 alanlı bir satırın içinde tanınır ve işaretlenirler; alan, bir değer listesi yerine bunun bir Quartz operatörü olduğunu gösterir. Çalışma zamanı hesaplanmaz, çünkü standart cron o satırı zaten hiç çalıştırmaz.
Doğrudan reddedilenler
- Yanlış alan sayısı. Saniye içeren 6 alanlı bir Quartz satırı ya da yıl içeren 7 alanlı bir satır, alan sayısı yüzünden reddedilir.
- Aralık dışı değerler, örneğin dakika 75 ya da ay 13.
- Geriye doğru yazılmış bir aralık, örneğin
5-1. - Sıfır adım, örneğin
*/0.
Her ret mesajı, buna yol açan alanı ve değeri adıyla söyler; böylece satırın tamamını yeniden yazmak yerine tek bir şeyi düzeltirsiniz.
Saat dilimi
Sonraki çalışma önizlemesi tarayıcınızda, cihazınızın ayarlı olduğu saat dilimine göre hesaplanır. Bir crontab ise kendisini barındıran makinenin saat diliminde çalışır; o sunucu UTC üzerinde çalışıyorsa ve siz başka bir saat dilimindeyseniz, karşılaştırmadan önce saatleri buna göre kaydırın.
Sık Sorulan Sorular
Zamanlama olarak hayır. Saniye içeren 6 alanlı bir Quartz satırı ya da yıl içeren 7 alanlı bir satır, alan sayısı yüzünden reddedilir. Normal 5 alanlı bir satırın içindeki Quartz operatörleri (L, W, #, ?) ise ayrı bir durumdur: tanınır ve işaretlenirler, ama çalışma zamanı hesaplanmaz, çünkü standart cron o satırı da çalıştırmaz.
Genellikle iki nedenden biri: cihazınız ile crontab’ı çalıştıran sunucu arasındaki saat dilimi farkı ya da iki gün alanının birden belirtilmiş olması. Ayın günü ve haftanın günü birlikte sınırlandırıldığında cron, ikisi birden değil, herhangi biri eşleştiğinde tetiklenir; bu yüzden 0 0 1 * MON çoğu kişinin beklediğinden çok daha sık çalışır. Her alanın yanındaki değer sayısı, sandığınızdan geniş bir alanı fark etmenin en hızlı yoludur.
Evet. Kubernetes standart 5 alanlı sözdizimini kullanır. Ayarlamanız gereken tek şey saat: bir CronJob, kümenin saat diliminde çalışır (spec.timeZone başka bir şey söylemiyorsa UTC), buradaki önizleme ise kendi cihazınızın saat dilimini kullanır.
Bunlar, beş alan yazmak yerine Linux cronda kullanabileceğiniz adlandırılmış kısayollardır. @daily (aynı zamanda @midnight) 0 0 * * *, @weekly 0 0 * * 0, @monthly 0 0 1 * *, @yearly (aynı zamanda @annually) 0 0 1 1 * ve @hourly 0 * * * * demektir. Bunlardan herhangi birini yapıştırın; ayrıştırıcı size açıldığı 5 alanlı biçimi gösterir. @reboot istisnadır: sistem açılışında çalışır, bu yüzden ne bir zamanlaması ne de çalışma zamanı vardır.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Kısa bir formdan webpack 5 için bir webpack.config.js oluşturun: entry, çıkış klasörü ve modu ayarlayın; ardından TypeScript, Babel, bir CSS yükleyici, HtmlWebpackPlugin ve bir dev sunucu açın.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Rastgele adres oluşturucu
Arayüz maketleri ve testler için üç basitleştirilmiş biçimde 1–20 adres benzeri kayıt oluşturun.
Araç diğer dillerde mevcuttur
- Analyseur d'expressions cron [FR]
- Bộ phân tích biểu thức Cron [VI]
- Parser för cron-uttryck [SV]
- Cron 式パーサー [JA]
- Parser wyrażeń cron [PL]
- Analizador de expresiones cron [ES]
- Cron-expressieparser [NL]
- Analisador de Expressões Cron [PT]
- เครื่องมือแยกวิเคราะห์นิพจน์ Cron [TH]
- Pengurai Ekspresi Cron [ID]
- Cron 표현식 파서 [KO]
- محلل تعبيرات cron [AR]
- Cron-Ausdruck-Parser [DE]
- Парсер cron-выражений [RU]
- Cron 表达式解析器 [ZH]
- Cron Expression Parser [EN]
- Parser di espressioni cron [IT]