Preskoči na sadržaj
TextArray

Razumijevanje cron izraza: pišite rasporede poput programera

Blog /

Cron izrazi kontroliraju kada se automatizirani zadaci izvode na poslužiteljima, platformama u oblaku i alatima za planiranje—pa ipak većina programera pribjegava kopiranju primjera i nada se da rade. Razumijevanje cron sintakse znači da možete s pouzdanjem napisati bilo koji raspored od nule, brže otkloniti greške u neuspjelim poslovima i izbjeći skupe pogreške poput sigurnosnih kopija koje se nikada ne pokreću.

Što su cron izrazi i zašto su važni

Cron izraz je kompaktni niz od pet ili šest polja koji govore sustavu kada točno treba izvršiti zadatak. To je standardni format za Unix poslužitelje, Linux, GitHub Actions, AWS EventBridge, Kubernetes i CI/CD platforme širom svijeta. Umjesto da pišete prozu poput "pokrenite ovo svakog utorka u 2 ujutro", vi pišete 0 2 * * 2, a cron demon to odmah tumači. Učenje ove notacije—koja je ostala gotovo nepromijenjena desetljećima—jednokratna je investicija koja se isplati svaki put kad bilo što zakažete.

Pet polja i njihovi rasponi

Standardni cron koristi pet obaveznih polja odvojenih razmacima. Pročitajte ih slijeva nadesno kao minute, sate, dan u mjesecu, mjesec i dan u tjednu:

  1. Minute (0–59) — koju minutu sata trčati
  2. Hour (0–23) — koji sat u danu (24-satni sat)
  3. Day of month (1–31) — koji kalendarski dan
  4. Month (1–12) — koji mjesec u godini
  5. Day of week (0–7) — koji dan u tjednu, gdje i 0 i 7 znače nedjelju

Svako polje prihvaća određenu vrijednost, poput raspona 1-5, popis poput 1,3,5ili zamjenski znak * što znači "svaka vrijednost u tom polju." Operator kose crte dijeli raspone: */15 u polju minuta znači svakih 15 minuta.

Uobičajene obrasce koje ćete napisati

Većina rasporeda u stvarnom svijetu ponavlja se na samo nekoliko načina. Radnim danom ujutro je u 9 sati 0 9 * * 1-5. Svaki sat je 0 * * * *. Prvi dan u mjesecu u ponoć: 0 0 1 * *. Svakih 15 minuta, cijeli dan: */15 * * * *. Jednom dnevno nedjeljom u 2:30 ujutro: 30 2 * * 0. Ako ikada niste sigurni je li vaš izraz točan, zalijepite ga u a cron parser da biste vidjeli sljedećih pet planiranih pokretanja i provjerili odgovara li vašoj namjeri prije implementacije.

Izgradite vlastiti cron izraz

Počnite na engleskom, a zatim prevedite na cron. Želite "9:30 svaki radni dan"? To je 30 minuta, 9 sati, bilo koji dan u mjesecu, bilo koji mjesec, od ponedjeljka do petka. Polja postaju 30 9 * * 1-5. Za "dva puta dnevno u 7 ujutro i 18 sati": 0 7,18 * * * (zarez odvaja sate). Podne 15. svakog mjeseca: 0 12 15 * *. Nakon što napišete bilo koji izraz, uvijek ga testirajte s parserom kako biste uhvatili pogreške pri upisu prije implementacije.

Rukujte vremenskim zonama i provjerite točna vremena

Cron izrazi su relativni u odnosu na poslužitelj — izvode se u vremenskoj zoni sustava, a ne u vašoj lokalnoj vremenskoj zoni. Da biste provjerili Unix vremensku oznaku ili vidjeli koje lokalno vrijeme vaš cron pokreće u vašoj zoni, koristite pretvarač vremenske oznake, koji radi u vašem pregledniku i trenutačno obrađuje konverzije vremenskih zona bez slanja podataka bilo gdje.

Pretvorite svoj raspored u događaj u kalendaru

Nakon što imate solidan cron izraz, podijelite ga ili dodajte u svoj kalendar kako biste vidjeli kada se zadatak izvodi. The ICS generator pretvara početni datum i pravilo ponavljanja u kalendarsku datoteku koja se uvozi u Apple kalendar, Google kalendar, Outlook ili bilo koju standardnu aplikaciju kalendara. Alternativno, stvorite izravnu Veza Google kalendara koji otvara događaj unaprijed ispunjen u Google kalendaru jednim klikom—bez preuzimanja, bez upravljanja datotekama.

Vaši cron rasporedi ostaju privatni

Svi ovdje spomenuti alati pokreću se unutar vašeg preglednika; ništa nije učitano na poslužitelj. Raščlanjivanje crona, pretvorba vremenske oznake, generiranje kalendara i stvaranje veze događa se na vašem uređaju. Nema računa, nema praćenja, a alati rade izvan mreže nakon što se učitaju. Vaši rasporedi i detalji automatizacije ostaju samo vaši.