Salt la conținut
Quaestio

Expresie cron explicată

Instrumentul funcționează în ambele sensuri: introdu o planificare în format crontab ca s-o vezi explicată sau descrie planificarea în cuvinte ca să primești expresia.

Cinci câmpuri: minut, oră, ziua lunii, lună și ziua săptămânii. Un al șaselea câmp pentru secunde poate sta la început.

Exemple

Înseamnă

Minutele din 15 în 15, de la 5 până la 59, în orele 9–17, în fiecare luni–vineri

Câmp cu câmp

CâmpExpresieValori
Minut5-59/155, 20, 35, 50
Oră9-179, 10, 11, 12, 13, 14, 15, 16, 17
Ziua lunii*toate
Lună*toate
Ziua săptămâniiMON-FRIluni, marți, miercuri, joi, vineri

Următoarele rulări

Planificare după

…

Ora de vară este tratată ca în Vixie cron și cronie: o oră fixă rulează o singură dată chiar dacă ora este sărită sau repetată, în timp ce sarcinile cu * la minute sau la ore urmează noul ceas.

Încorporează

Încorporează instrumentul pe site-ul tău

Copiază codul și lipește-l acolo unde vrei să apară instrumentul, de exemplu într-un articol de blog sau pe pagina unei școli. Este gratuit, caseta nu are reclame, iar instrumentul calculează în browserul vizitatorului.

Cum funcționează

O expresie cron are cinci câmpuri despărțite prin spații: minutul (0–59), ora (0–23), ziua lunii (1–31), luna (1–12) și ziua săptămânii (0–7, unde atât 0, cât și 7 înseamnă duminică). În fiecare minut, cron verifică dacă ceasul se potrivește cu toate câmpurile și, dacă da, pornește sarcina.

În fiecare câmp, * înseamnă orice valoare, 1-5 un interval, 1,15 o listă, iar */15 din cincisprezece în cincisprezece. Pașii pot fi combinați și cu intervale: 5-59/15 dă minutele 5, 20, 35 și 50. Lunile și zilele săptămânii pot fi scrise cu abrevieri englezești, JAN–DEC și SUN–SAT.

Când sunt restrânse atât ziua lunii, cât și ziua săptămânii, este suficient ca una dintre ele să se potrivească. De aceea, 0 0 13 * 5 rulează pe 13 ale fiecărei luni și în fiecare vineri, nu doar vineri 13. Regula vine din Vixie cron și se aplică pe majoritatea sistemelor Linux. Dacă unul dintre câmpuri începe cu *, chiar și cu un pas precum */2, trebuie să se potrivească amândouă.

Macrocomenzile @hourly, @daily, @weekly, @monthly și @yearly (sau @annually) sunt prescurtări pentru planificări obișnuite, iar @reboot rulează sarcina o dată, la pornirea lui cron. Un al șaselea câmp pentru secunde la început, ? pentru „orice zi” și L pentru ultima zi a lunii vin din Quartz, Spring și planificatoare similare, iar crontab obișnuit nu le înțelege.

Cron urmează ora locală a calculatorului. Când începe ora de vară și ceasul sare de la 02:00 la 03:00, o sarcină cu o oră fixă în intervalul sărit rulează imediat după schimbare, iar când ceasul este dat înapoi rulează o singură dată. Sarcinile cu * în câmpul minutelor sau al orelor urmează în schimb noul ceas. Lista de aici funcționează la fel, în fusul tău orar sau în UTC.

Verifică ce implementare rulează planificarea ta. Serviciile cloud au adesea variante proprii: AWS EventBridge, de exemplu, are șase câmpuri, cu anul la final, și cere ? fie în ziua lunii, fie în ziua săptămânii, iar multe servicii lucrează în UTC, nu în ora locală.

În sens invers, poți descrie planificarea în cuvinte: „în fiecare luni la ora 9”, „la fiecare 15 minute”, „în prima zi a lunii la ora 2:30”, „în zilele lucrătoare între 9 și 17” sau „în ultima zi a lunii la miezul nopții”. Orele sunt citite ca 9, 9.30, 9:30 și 09h30, intervalele ca 9–17, iar listele ca 1, 15. Dacă fraza este înțeleasă, expresia apare imediat, iar explicația de mai sus spune în cuvinte ce înseamnă, ca să vezi dacă e ceea ce ai vrut. Dacă nu este înțeleasă, sunt indicate cuvintele care nu au putut fi citite, în loc să se ghicească ceva.

Generatorul de sub caseta de text face același lucru cu opțiuni în loc de cuvinte, iar cele două rămân sincronizate: o frază completează opțiunile, iar fiecare modificare a opțiunilor rescrie expresia. Nu orice se poate exprima în cron. În crontab obișnuit nu există nicio cale de a spune „prima luni din lună” sau „o săptămână da, una nu”, iar două ore diferite în aceeași frază (la 9 și la 17) se scriu ca listă în câmpul orelor: 0 9,17 * * *.

Surse

Cum sunt verificate instrumentele