Izračunati naslednje izvedbe cron izraza
- Nadzorna plošča
- Dokumentacija
- API
Kaj je cron izraz?
Cron izraz je kratek niz, ki opisuje ponavljanje skozi čas. The
format, podedovan iz Unixa, vsebuje pet polj, ločenih s presledki: minute, ura,
dan v mesecu, mesec in dan v tednu. Ta sintaksa se je rodila z demonom
cron avtorja Briana Kernighana v sedemdesetih letih 20. stoletja, nato pa ga je posplošil Vixie cron
(1987), ki ga podpirajo vse sodobne distribucije Linuxa in macOS. Danes je ista sintaksa
najdemo v večini načrtovalcev v oblaku (AWS EventBridge, GCP Cloud Scheduler, Azure Logic
Aplikacije) in CI/CD (GitHub Actions, GitLab CI, Jenkins).
┌──── minuta (0-59)
│ ┌── ura (0-23)
│ │ ┌── dan v mesecu (1-31)
│ │ │ ┌── mesecev (1-12 ali JAN-DEC)
│ │ │ │ ┌── dan v tednu (0-7 ali NED-SO, 0 in 7 = nedelja)
│ │ │ │ │
* * * * *
Dobro oblikovan cron izraz torej definira natančen cron urnik: vsako polje je lahko fiksna vrednost, obseg, seznam, korak ali zvezdica, ki se ujema z vsem. Kompaktnost crontab izraza je njegova moč, vendar je tudi tisto, kar ga naredi Cron dekoder bistvenega pomena za vizualno potrditev namere. To je bistvo tega pretvornika cron: ustvarite berljivo razlago cron in seznam naslednje usmrtitve.
Anatomija cron izraza
Pet polj ima skupno slovnico. Tukaj so omejitve, ki jih sprejme vsak stolpec a Standardni izraz crontab:
- Minute:
0-59. - Čas:
0-23, 24-urni format. - Dan v mesecu:
1-31. - Mesec:
1-12ali besedilne okrajšaveJAN,FEB,MAR,APR,MAJ,JUNIJ,JUL,AVG,SEP,OKT,NOV,DEC. - Dan v tednu:
0-7kjer0in7oba predstavljata nedeljo ali okrajšaviNED,PON,TOR,SRE,ČET,PET,SOB.
Posebni znaki, ki si jih deli pet polj:
*: katera koli vrednost, se ujema z vsemi dovoljenimi vrednostmi v polju.,: diskretni seznam, na primer1,15,30v polju minut.-: vključno obseg, na primer9-17za uradne ure./: korak, na primer*/15= vsakih 15 enot ali0-30/5= vsakih 5 minut med 0 in 30.
Razširitve Quartz (Java, AWS EventBridge, Spring): slovnica se poveča na 6 ali 7
polja s stolpcem sekund na začetku (0-59) in včasih stolpcem
Končno leto (1970-2099). Quartz predstavlja tudi ? (brez posebnega
vrednost, za ločitev dneva v mesecu in dneva v tednu), L (zadnji: zadnji dan v mesecu,
ali zadnji petek z 5L), W (najbližji delovni dan) in #
(N. dan v tednu v mesecu, na primer 2#3 za 3. ponedeljek). Izraz
Quartz na splošno ni združljiv s crontabom UNIX in obratno: to je glavni
izvor napake pri kopiranju cron izraza z ene platforme na drugo.
# UNIX / Vixie cron (5 polj)
0 9 * * 1-5
# Quartz (6 polj s sekundami)
0 0 9 ? * PON-PET
# Quartz (7 polj z letnico)
0 0 9 ? * PON–PET 2026
Zakaj dekodirati cron izraz?
Branje 0 0 * * * je hitro. Branje */7 2-5 1.15 * 1-5 je veliko manj. kdaj
izraz presega nepomembno, poveča se tveganje napake pri interpretaciji in dekodiranje crona
postane sama po sebi stopnja pregleda.
- Izdelava odpravljanja napak: razumejte, zakaj je bilo opravilo sproženo ob 03:17 in ne ob 03:00 ali ugotovite prekrivanje med dvema opraviloma.
- Pregled kode: preverite, ali razporejevalnik, potisnjen kot zahteva za vlečenje, počne, kar počne trdi avtor, ne da bi si moral zapomniti semantiko posameznega simbola.
- Revizija razporejevalnika: Preglejte cron opravila v Linuxu
/etc/crontabin/etc/cron.d/, sprožilci Jenkins,spec.scheduleKubernetes CronJob, pravila Opravila AWS EventBridge in GCP Cloud Scheduler. - Migracija podedovanja: nadaljujte s preteklim
/etc/crontabbrez dokumentacijo in ponovno sestavite načrt opravil pred spremembo infrastrukture. - Vkrcanje: omogočite novemu razvijalcu, da ponovno prebere crontab ne da bi se morali čez noč naučiti vseh posebnih znakov.
Kako uporabljati cron dekoder
Postopek za dekodiranje izraza crontab z orodjem:
- Prilepite svoj cron izraz v vnosno polje (5 polj, ločenih z presledki).
- Navedite število naslednjih izvedb za izračun.
- Kliknite pretvori, da zaženete dekodiranje cron: orodje vrne človeški stavek, ki pojasnjuje sprožitev, in datumski seznam naslednjih usmrtitev.
- Vizualno preverite, ali datumi ustrezajo vašemu namenu (ura, dan, pogostost).
- Kopirajte izhod z gumbom za kopiranje, da ga prilepite v vstopnico, PR ali dokumentacijo tehnično.
Orodje ne zagotavlja le sintaktičnega razčlenjevanja: nudi razlago cronv naravnem jeziku, zaradi česar je hkrati dekodirnik cronin a validator urnika.
Klasični primeri izraza cron
Spodnji vzorci pokrivajo večino cron urnikov, ki se pojavljajo v proizvodnji. Oni veljajo za Linux crontab, Kubernetes CronJob, GitHub Actions in večino načrtovalci aplikacij.
| Izraz | Človeško branje |
|---|---|
* * * * * |
Vsako minuto |
0 * * * * |
Vsako uro točno |
0 0 * * * |
Vsak dan ob polnoči |
0 0 * * 0 |
Vsako nedeljo ob polnoči |
*/15 * * * * |
Vsakih 15 minut |
0 9 * * 1-5 |
Od ponedeljka do petka od 9.00 |
0 0 1 * * |
Prvega v mesecu ob polnoči |
0 0,12 * * * |
Vsak dan ob polnoči in opoldne |
*/5 9-17 * * 1-5 |
Vsakih 5 minut med delovnim časom |
30 2 1,15 * * |
1. in 15. v mesecu ob 2.30 |
Če želite izvesti nalogo cron na strežniku Linux, uredite uporabniški crontab iz lupine:
# uredi crontab trenutnega uporabnika
$ crontab -e
# seznam obstoječih nalog
$ crontab -l
# primer dodane vrstice: dnevno varnostno kopiranje ob 3. uri zjutraj
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Primer izhoda pretvornika cron za */5 * * * *:
2026-05-05 00:00:00
2026-05-05 00:05:00
2026-05-05 00:10:00
2026-05-05 00:15:00
2026-05-05 00:20:00
...
Pogosta vprašanja o dekoderju cron
Kakšna je razlika med UNIX cron in Quartz?
UNIX/Vixie cron uporablja 5 polj (minuta do dneva v tednu), brez natančnosti do sekunde in nima
domači pojem »zadnji dan v mesecu«. Quartz (Java, Spring, AWS EventBridge) doda stolpec
sekunde na vrhu, včasih stolpec leto na dnu in več simbolov
(?, L, W, #) manjka v crontab-u Linux. A
cron express 6-field Quartz torej ni neposredno prenosljiv na
/etc/crontab in obratno. Naš dekodirnik cron cilja na format 5
področja, ki pokriva večino načrtovalcev.
Kako zagnati opravilo cron vsakih 5 minut?
S korakom / v polju minut:
*/5 * * * * /usr/local/bin/check-health.sh
Ta crontab izraz sproži skript v minutah 0, 5, 10, 15 ... vsake
uro, vsak dan. Če želite omejiti delovni čas od ponedeljka do petka, dodajte omejitve
v poljih za čas in dan v tednu: */5 9-17 * * 1-5.
Kaj pomeni zvezdica (*) v izrazu cron?
Zvezdica pomeni katero koli vrednost: ujema se z vsemi dovoljenimi vrednostmi polja. notri
0 0 * * *, tri zvezdice pomenijo »kateri koli dan v mesecu, kateri koli
mesec, kateri koli dan v tednu. V kombinaciji s prvima dvema poljema, nastavljenima na 0, smo
dobi "vsak dan ob polnoči". Zvezdico lahko kombinirate tudi s stopnico: */15 in
minuta = vsakih 15 minut.
Ali ima Crontab časovni pas?
Privzeto je časovni pas strežnika. V crontabu Linux je sistem TZ (pogosto UTC na VPS in
zabojniki). GitHub Actions prisili UTC. Kubernetes CronJob uporablja časovni pas krmilnika,
nastavljiv prek spec.timeZone od 1.27. AWS EventBridge ovrednoti izraze po
UTC. Razporejevalniki aplikacij (Symfony Scheduler, Quartz, Airflow) vam pogosto omogočajo nastavitev a
časovni pas, namenjen posamezni nalogi. Če ste v dvomih, preverite datum na ciljnem strežniku in
primerjajte z izhodom pretvornika cron.
Cron opravilo proti ukazu at: katerega izbrati?
cron se uporablja za izvajanje ponavljajočega se opravila po urniku. Uporablja se at
za izvedbo ukaza samo enkrat ob določenem času. Za dnevno varnostno kopiranje,
rotacijo dnevnika ali običajni klic API, uporabite cron. Za odlog ene operacije
(»znova zaženi to uvedbo nocoj ob 22.00«), uporabite na:
$ echo "/usr/local/bin/deploy.sh" | ob 22. uri
Kako preizkusiti cron izraz, ne da bi ga sprožil?
Točno to je vloga tega pretvornika cron: izračuna naslednji N
izvršitve iz trenutnega časa, ne da bi začeli katero koli opravilo. Takoj vidite, ali je vaš
crontab izraz se sproži ob 03:00 po pričakovanjih ali ob 03:17 po nesreči. Da grem dlje
daleč pred namestitvijo naloge lahko preizkusite tudi sam skript (bash -x script.sh)
in preveri sintakso datoteke crontab z datoteko crontab -T v distribucijah
ki to podpirajo.
Kaj se zgodi, če sta nastavljena dan v mesecu in dan v tednu?
Na Vixie cron (Linux) je pravilo logično ALI: opravilo se sproži, če ena ali
drugood obeh polj se ujema. To je kontraintuitivno in vir hroščev. Quartz uporablja a
IN, od tod uvedba simbola ?, ki izrecno označuje »ne
omejitev". Praviloma popravite samo eno od obeh polj.
Primer zahteve
curl -X POST https://cdrn.fr/api/v1/tools/cron-converter/execute \
-H "Content-Type: application/json" \
-d '{"cron":"...","number_next_date":1}'
Vhodna shema
| Polje | Tip | Obvezno | Privzeto |
|---|---|---|---|
cron |
string | ✓ | – |
number_next_date |
integer | ✓ | – |
Končne točke
GET https://cdrn.fr/api/v1/tools- izpiše vsa razpoložljiva orodjaGET https://cdrn.fr/api/v1/tools/cron-converter- pridobi shemo tega orodjaPOST https://cdrn.fr/api/v1/tools/cron-converter/execute- izvede to orodje s JSON payloadom