OTOthoTools

Cron-forklarer

Valider og forklar tidsplaner
15 2 * * 1-5

Minutt 15, time 2, dag-i-måned *, måned *, ukedag 1-5.

Pedagogisk defensiv veiledning. Gjennomgå hvert resultat før produksjonsbruk.

Innledning

Cron-forklareren validerer et standard cron-uttrykk med fem felt — minutt, time, dag-i-måned, måned, ukedag — og forklarer hva det betyr på vanlig språk.

Cron-syntaks er kompakt og lett å lese feil: 0 2 * * 1-5 og 0 2 * * 1,5 betyr veldig forskjellige ting. Et ekstra sett øyne på tidsplanen forhindrer både glemte jobber og overraskelser klokken 02:00.

Mål

  • Valider at et uttrykk har nøyaktig fem gyldige felt.
  • Oversett feltene til en lesbar setning.
  • Tilby vanlige forhåndsinnstillinger som startpunkt.

Inndata

  • Et cron-uttrykk med fem felt, for eksempel 15 2 * * 1-5.
  • Felt: minutt (0–59), time (0–23), dag-i-måned (1–31), måned (1–12), ukedag (0–7, der 0 og 7 er søndag).

Slik fungerer det

Uttrykket deles på mellomrom. Det må gi nøyaktig fem felt, og hvert felt må bare bestå av sifre og operatorene * / , -.

Verktøyet verifiserer ikke tallområder dypt (for eksempel passerer 99 som time tegnkontrollen) — forklaringen er ærlig om strukturen med fem felt.

Et gyldig uttrykk gir en setning som leser hvert felt bokstavelig; et ugyldig gir en tydelig feilmelding som ber om nøyaktig fem felt.

Testbart eksempel

Prøv det — analysen kjører lokalt i nettleseren din.

Eksempel

Uttrykk: 15 2 * * 1-5

Forventet utdata

Gyldig.
Minutt 15, time 2, dag-i-måned *, måned *, ukedag 1-5.
Tolkning: ukedager kl. 02:15.

Les utdataene

  • Hvis forklaringen stemmer med det du hadde tenkt, er tidsplanen trolig riktig.
  • Se opp for den klassiske fellen: dag-i-måned og ukedag kombineres med OR i standard cron (Vixie), så et uttrykk med begge begrenset kan kjøre oftere enn forventet.
  • Forhåndsinnstillinger (hver time, daglig, ukentlig, hvert 5. minutt) er trygge startpunkter.

Risikoer

  • En skrivefeil i minutt- eller timefeltet flytter en hel tidsplan — for eksempel kjører 30 2 * * * kl. 02:30, ikke 02:00.
  • Å bruke både dag-i-måned og ukedag skaper OR-semantikk som overrasker de fleste.
  • Jobber som kjører når systemet sover eller er nede, hoppes over eller utsettes avhengig av cron-implementeringen — anacron og systemd-timere oppfører seg forskjellig.

Begrensninger

  • Verktøyet godtar bare standardformatet med fem felt; det tolker ikke Vixie-utvidelser som @reboot eller varianten med seks felt (sekunder).
  • Områdesjekking er bevisst grunn: 99 i timefeltet passerer tegnkontrollen.
  • Det forklarer uttrykket; det kan ikke verifisere at den underliggende kommandoen finnes eller har riktige tillatelser.

Offisielle referanser

FAQ

Hva godtar ukedag-feltet?

0–7, der 0 og 7 er søndag. Navn som MON godtas ikke av denne validatoren — hold deg til tall, områder og lister.

Hvorfor kjører jobben min oftere enn jeg forventet?

Hvis både dag-i-måned og ukedag er begrenset, kjører Vixie-cron jobben når en av dem matcher. Bruk * i ett av de to feltene for å få den intuitive AND-atferden.

Bør jeg bruke cron eller systemd-timere?

For nytt arbeid tilbyr systemd-timere bedre logging, avhengigheter og håndtering av glemte kjøringer. Cron er fortsatt fint for enkle, velforståtte tidsplaner.