Cron-segð smiður
Smíðaðu cron-segð reit fyrir reit, sjáðu næstu keyrslutíma í hvaða tímabelti sem er og umbreyttu henni í systemd-, Quartz- eða AWS-snið.
Með einföldum orðum
Bæði dagur mánaðar og vikudagur eru stillt: hefðbundið cron keyrir þegar ANNAÐ hvort passar (ekki bæði).
Smiður
| Reitur | Hamur | Gildi |
|---|---|---|
| Sekúnda0–59 | ||
| Mínúta0–59 | ||
| Klukkustund0–23 | ||
| Dagur mánaðar1–31, L | ||
| Mánuður1–12 eða JAN–DEC | ||
| Vikudagur0–7 (0 og 7 = sunnudagur) eða SUN–SAT |
Næstu keyrslur
Önnur snið
- crontab-lína
- systemd OnCalendar=
- Quartz / Spring
- AWS EventBridge
Hvernig á að smíða cron-segð
- Sláðu inn eða límdu segð í Cron-segð, eða veldu eina úr Forstillingar. Skammstafanir eins og
@dailyeða@weeklyeru líka samþykktar. - Eða notaðu Smiður: fyrir hvern reit velurðu Hamur (Hverja, Á N fresti, Tiltekin gildi, Bil eða Sérsniðið) og fyllir út Gildi. Segðin uppfærist jafnóðum og ef þú breytir segðinni uppfærist smiðurinn.
- Hakaðu við Bæta við sekúndureit (6 reitir) ef tímaáætlunarforritið þitt styður sekúndur.
- Lestu áætlunina undir Með einföldum orðum (lýsingin er á ensku, sjá hér að neðan) og athugaðu síðan listann Næstu keyrslur. Veldu Tímabelti netþjónsins sem keyrir verkið og Hversu margar keyrslur á að birta.
- Afritaðu segðina með Afrita, eða notaðu eitt af Önnur snið.
Villur eru útskýrðar reit fyrir reit, til dæmis „Mínúta: 61 er utan marka (0–59)“, svo þú veist nákvæmlega hvað þarf að laga.
Athugaðu að lýsingin á áætluninni er á ensku, því lýsingarsafnið sem verkfærið notar hefur ekki íslenskt tungumál. Dagsetningar og tímar í listanum yfir næstu keyrslur eru hins vegar sniðnir eftir íslenskum venjum.
Reitirnir fimm í cron
Hefðbundin (Vixie) cron-lína hefur fimm reiti og síðan skipunina:
| Reitur | Leyfileg gildi |
|---|---|
| Mínúta | 0–59 |
| Klukkustund | 0–23 |
| Dagur mánaðar | 1–31 |
| Mánuður | 1–12 eða JAN–DEC |
| Vikudagur | 0–7 (0 og 7 eru sunnudagur) eða SUN–SAT |
Hver reitur tekur við * (öll gildi), lista 1,15, bili 9-17, skrefi */15 (á 15 eininga fresti) eða bili með skrefi 0-30/10. Þannig þýðir */15 9-17 * * 1-5 á 15 mínútna fresti frá 9:00 til 17:45, mánudaga til föstudaga.
Ein regla kemur mörgum á óvart: þegar bæði Dagur mánaðar og Vikudagur eru takmörkuð keyrir hefðbundið cron þegar annað hvort passar. 0 0 13 * 5 keyrir 13. hvers mánaðar og hvern föstudag, ekki bara á föstudeginum þrettánda. Verkfærið sýnir viðvörun í því tilviki.
Næstu keyrslutímar og tímabelti
Cron notar klukku vélarinnar, eða stillinguna CRON_TZ/TZ í crontab-skránni. Listinn Næstu keyrslur er reiknaður fyrir tímabeltið sem þú velur, að teknu tilliti til sumartíma. Ísland notar reyndar ekki sumartíma, en margir netþjónar gera það: í vorskiptunum getur verk sem er stillt á 2:30 fallið niður og á haustin getur það keyrt einu sinni eða tvisvar, eftir útfærslu. Fyrir verk sem verða að keyra nákvæmlega einu sinni skaltu velja tíma utan 1:00–3:00 eða nota UTC.
Vixie cron, systemd-tímamælar, Quartz og AWS
- systemd-tímamælar nota
OnCalendar=með annarri setningafræði:Mon..Fri *-*-* 09..17:00/15:00. Skilyrði um vikudaga og dagsetningar eru sameinuð með OG, ekki EÐA, svo sumar cron-segðir eiga sér ekkert nákvæmt jafngildi. - Quartz og Spring setja sekúndureit fremst og geta bætt við ártalsreit. Annar daga-reiturinn verður að vera
?og Quartz númerar vikudaga 1–7 frá sunnudegi, ólíkt 0–6 í cron. Verkfærið skrifar vikudaga sem nöfn (MON-FRI) til að forðast þá gildru. - AWS EventBridge notar
cron(mínútur klukkustundir dagur mánuður vikudagur ár): sex reiti, engar sekúndur,?í öðrum daga-reitnum og ártal aftast.
Hefðbundið cron hefur engan sekúndureit. Sex reita formið með sekúndum er stutt af mörgum söfnum (node-cron, Spring, Quartz) en ekki af kerfis-crontab.
Algengar spurningar
Hvernig keyri ég verk á 5 mínútna fresti?
Notaðu */5 * * * *. Verkið keyrir á mínútum 0, 5, 10 … hverrar klukkustundar.
Hvernig keyri ég verk síðasta dag mánaðar?
Mörg tímaáætlunarforrit taka við L í reitnum dagur mánaðar: 0 18 L * *. Með hreinu Vixie cron keyrirðu daglega á dögum 28–31 og prófar í skriftunni hvort morgundagurinn sé sá 1.
Hvað gerir @reboot?
Það keyrir skipunina einu sinni, þegar cron-þjónninn ræsist. Það hefur enga áætlun, svo verkfærið getur ekki talið upp keyrslutíma fyrir það.
Af hverju keyrir verkið mitt ekki á tímanum sem er sýndur?
Athugaðu tímabelti netþjónsins, crontab notandans á móti /etc/crontab (sem hefur aukareit fyrir notanda) og PATH: cron ræsist með lágmarksumhverfi.
Er 0 eða 7 sunnudagur?
Hvort tveggja. Í reitnum vikudagur þýða 0 og 7 sunnudag, 1 er mánudagur og 6 er laugardagur.
Tengd verkfæri
- Unix-tímastimpill umbreytir Umbreyttu Unix-tímastimplum í sekúndum eða millisekúndum í læsilegar dagsetningar í staðartíma, UTC og ISO 8601, og dagsetningum aftur í epoch-tíma.
- Tímabeltabreytir Umbreyttu dagsetningu og tíma úr einu tímabelti í mörg önnur í einu, með sjálfvirkri meðhöndlun sumartíma. Leitaðu að hvaða IANA-tímabelti eða borg sem er.
- Chmod reiknivél Umbreyttu Unix-skráarheimildum milli hakreita, áttundarkerfis (755) og táknrænnar ritunar (rwxr-xr-x), með setuid, setgid, sticky og tilbúnum chmod-skipunum.