tigtools

Explicator de expresii cron

Introdu o expresie cron cu 5 câmpuri pentru a vedea ce înseamnă și când va rula data viitoare. Totul este calculat în browserul tău.

Rulează în browser Fără înregistrare

Cinci câmpuri: minut, oră, ziua lunii, lună, ziua săptămânii. Funcționează și macrocomenzi precum @daily.

Programe frecvente

Semnificație

La fiecare 15 minute, între 09:00 și 17:59, în zilele de luni până la vineri.

Câmpuri

Minut
*/15
Oră
9-17
Ziua lunii
*
Lună
*
Ziua săptămânii
1-5
Fus orar

Următoarele 10 execuții

    Cum se folosește

    1. Scrie sau lipește o expresie cron sau alege unul dintre programele uzuale.
    2. Citește explicația în limbaj simplu. Câmpurile invalide sunt semnalate împreună cu motivul.
    3. Verifică următoarele 10 momente de rulare, afișate în fusul orar local. Comută pe UTC dacă serverul tău rulează în UTC.
    4. Copiază momentele de rulare pentru a le partaja sau ajustează expresia până când programul este cel de care ai nevoie.

    Cum funcționează

    O expresie cron standard, așa cum este folosită de crontab pe Linux (Vixie cron și cronie) și de multe planificatoare CI și de hosting, are cinci câmpuri separate prin spații: minut (0–59), oră (0–23), ziua lunii (1–31), lună (1–12 sau JAN–DEC) și ziua săptămânii (0–7 sau SUN–SAT, unde atât 0, cât și 7 înseamnă duminică). Fiecare câmp acceptă * pentru orice valoare, o singură valoare, un interval precum 1-5, o listă precum 1,15,30 și un pas precum */15 (fiecare a 15-a valoare) sau 9-17/2 (fiecare a doua oră de la 9 la 17). Numele nu fac diferență între majuscule și minuscule. Scurtăturile @yearly (sau @annually), @monthly, @weekly, @daily (sau @midnight) și @hourly corespund expresiilor 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * și 0 * * * *.

    Câmpurile ziua lunii și ziua săptămânii urmează o regulă care surprinde multă lume. Dacă oricare dintre câmpuri începe cu *, o zi trebuie să îndeplinească ambele câmpuri. Dacă ambele câmpuri sunt restricționate, o zi corespunde când se potrivește oricare dintre ele: 0 0 13 * 5 rulează în ziua de 13 a fiecărei luni și, de asemenea, în fiecare vineri, nu doar vineri 13. Deoarece se verifică dacă câmpul începe cu *, un pas precum */2 este considerat, de asemenea, nerestricționat. Acest comportament corespunde cu Vixie cron și cronie; alte câteva planificatoare se comportă diferit.

    Momentele următoarelor rulări sunt calculate în fusul orar al browserului sau în UTC, folosit de majoritatea serverelor și planificatoarelor cloud. Cron însuși folosește fusul orar al mașinii pe care rulează. La schimbările orei de vară, daemonii cron reali diferă; acest instrument omite orele locale care nu există atunci când ceasurile se dau înainte și afișează o oră repetată o singură dată. Sintaxele extinse nu sunt acceptate: expresiile Quartz cu șase sau șapte câmpuri, cu secunde sau ani, și caracterele speciale ?, L, W și #.

    Exemple

    Verificare de sănătate în timpul programului de lucru

    */15 9-17 * * 1-5 înseamnă la fiecare 15 minute între 09:00 și 17:59, de luni până vineri. Ultima rulare din fiecare zi este la 17:45.

    Backup nocturn

    30 2 * * * rulează la 02:30 în fiecare zi. Dacă serverul folosește UTC și vă aflați în New York, lista următoarelor rulări în modul UTC arată orele pe care serverul le va folosi efectiv.

    Capcana câmpului de zi

    0 9 1 * 1 pare „9:00 în data de 1 a lunii, dacă este luni”, dar rulează la 09:00 în data de 1 a fiecărei luni și, de asemenea, în fiecare luni. Pentru a rula doar în prima zi de luni din lună, programează 0 9 1-7 * * și verifică ziua săptămânii în script.

    Întrebări frecvente

    Ce înseamnă */5 în cron?

    Înseamnă fiecare a cincea valoare a câmpului, începând de la cea mai mică valoare. În câmpul pentru minute, */5 rulează la minutele 0, 5, 10 … 55. În câmpul pentru ore, */5 rulează la 0, 5, 10, 15 și 20, astfel că intervalul de la 20:00 la miezul nopții este de patru ore, nu de cinci.

    De ce rulează jobul meu în mai multe zile decât mă așteptam?

    Atunci când ambele câmpuri, ziua lunii și ziua săptămânii, sunt restricționate, cron rulează în zilele care corespund oricăreia dintre ele. De exemplu, 0 0 15 * 1 rulează pe 15 și în fiecare luni. Setează unul dintre cele două câmpuri pe * pentru a se lua în considerare doar celălalt.

    Ce fus orar folosește cron?

    Fusul orar al sistemului serverului care rulează daemonul cron, cu excepția cazului în care crontab setează CRON_TZ sau TZ (acceptat de cronie). Planificatoarele din cloud folosesc adesea implicit UTC. Folosește comutatorul UTC pentru a vedea orele pe care le-ar folosi un server UTC.

    Pot folosi secunde sau un câmp pentru an?

    Nu în cron standard, care are o rezoluție de un minut și cinci câmpuri. Formatele cu șase și șapte câmpuri, cu secunde și ani, aparțin Quartz, Spring și bibliotecilor similare și nu sunt acceptate de acest instrument.

    Duminica este 0 sau 7?

    Ambele. În câmpul pentru ziua săptămânii, atât 0, cât și 7 înseamnă duminică, 1 este luni și 6 este sâmbătă. Poți scrie și numele din trei litere, de la SUN la SAT.

    Confidențialitate

    Expresia este analizată, iar momentele de rulare sunt calculate în browserul tău. Nimic din ce introduci nu este încărcat, stocat sau inclus în analize.