Sprievodca výrazmi Cron

1. Prehľad

Jednoducho povedané, cron je základný nástroj dostupný v systémoch založených na Unixe. Umožňuje používateľom naplánovať úlohy tak, aby sa pravidelne spúšťali v zadaný dátum / čas. A je to prirodzene vynikajúci nástroj na automatizáciu mnohých procesov, ktoré by inak vyžadovali ľudský zásah.

Cron beží ako proces démona - to znamená, že je potrebné ho spustiť iba raz a bude stále bežať na pozadí. Tento proces využíva crontab prečítať záznamy rozvrhov a zahájiť úlohy.

Postupom času formát výrazu cron sa stal všeobecne prijatým a mnoho ďalších programov a knižníc to využíva.

2. Práca s Crontab

A cron harmonogram je jednoduchý textový súbor umiestnený pod / var / spool / cron / crontabs v systémoch Linux. Nemôžeme upravovať crontab súbory priamo; musíme sa k nemu dostať pomocou crontab príkaz.

Napríklad na otvorenie crontab súboru, musíme spustiť tento príkaz:

crontab -e

Každý riadok v crontab je záznam s výrazom a príkazom na spustenie:

* * * * * /usr/local/ispconfig/server/server.sh

Táto položka spúšťa uvedený skript každú jednu minútu.

3. Výraz Cron

Poďme pochopiť cron výraz; skladá sa z piatich polí:

3.1. Špeciálne znaky vo výraze

  • * (všetky) - určuje, že udalosť by sa mala stať pre každú časovú jednotku. Napríklad, “*” v <minúta> pole - znamená „na každú minútu“
  • ? (akýkoľvek) - používa sa v <deň v mesiaci> a <deň v týždni>polia na označenie ľubovoľnej hodnoty - zanedbajte hodnotu poľa. Napríklad, ak chceme skript spustiť na „5. dňa každého mesiaca“ bez ohľadu na to, aký deň v týždni pripadne na tento dátum, zadáme „?”V <deň v týždni> lúka
  • - (rozsah) - určuje rozsah hodnôt. Napríklad, "10-11”V pole znamená „10. a 11. hodina“
  • , (hodnoty) - určuje viac hodnôt. Napríklad, "PO, ST, PIA “ v <deň v týždni> pole znamená v dňoch „pondelok, streda a piatok“
  • / (v prírastkoch) - určuje prírastkové hodnoty. Napríklad a “5/15” v <minúta>pole znamená „5, 20, 35 a 50 minút za hodinu“
  • L (posledný) - má rôzne významy, ak sa používa v rôznych oblastiach. Napríklad ak sa použije v znaku <deň v mesiaci>pole, potom to znamená posledný deň v mesiaci, t. j. „31. pre január“ atď. podľa kalendárneho mesiaca. Môže byť použitý s hodnotou posunu, napríklad „L-3“, Čo znamená„ tretí až posledný deň kalendárneho mesiaca “. V <deň v týždni>, určuje „posledný deň v týždni“. Môže sa tiež použiť s inou hodnotou v <deň v týždni>, Páči sa mi to "6L“, Ktorý označuje„ posledný piatok “
  • Z (všedný deň) - určuje všedný deň (pondelok až piatok) najbližší k danému dňu v mesiaci. Napríklad, ak zadáme „10 W”V <deň v mesiaci>pole, potom to znamená „všedný deň blízko 10. dňa v mesiaci“. Takže ak je „10.“ sobota, potom sa úloha spustí 9. „a ak„ 10. “je nedeľa, spustí sa„ 11. “. Ak zadáme „1 W.”V <deň v mesiaci> a ak je „1.“ sobota, potom sa úloha spustí v „3.“, čo je pondelok, a nepreskočí späť na predchádzajúci mesiac
  • # - určuje „N-th “výskyt všedného dňa v mesiaci, napríklad„ 3. piatok v mesiaci “možno označiť ako„6#3

3.2. Príklady expresie Cron

Pozrime sa na niekoľko príkladov cron výraz pomocou kombinácie polí a špeciálnych znakov:

Každý deň o 12:00 (poludnie):

0 12 * * ?

Každých 5 minút so začiatkom o 13:00 a končí o 13:55 a potom so začiatkom o 18:00 a končí o 18:55 každý deň:

0/5 13,18 * * ?

Každá minúta so začiatkom o 13:00 a končí o 13:05 každý deň:

0-5 13 * * ?

Každý utorok v mesiaci jún o 13:15 a 13:45:

15,45 13? 6 ut

Každý pondelok, utorok, stredu, štvrtok a piatok o 9:30:

30 9? * PO-PIA

15. deň v mesiaci o 9:30:

30 9 15 * ?

O 18:00 posledný deň každého mesiaca:

0 18 L *?

3. - posledný deň každého mesiaca o 18:00:

0 18 L-3 *?

Posledný štvrtok v mesiaci o 10:30:

30 10? * 5L

O 10:00 tretí pondelok v mesiaci:

0 10 ? * 2#3

O polnoci o polnoci každý deň počas piatich dní počnúc 10. dňom v mesiaci:

0 0 10/5 * ?

4. Špeciálne struny Cron

Okrem polí zadaných vo výraze cron existuje podpora aj pre niektoré špeciálne, preddefinované hodnoty, ktoré môžeme použiť namiesto polí:

  • @reštartovať- spustiť raz pri štarte
  • @rok alebo @ rocne - behať raz ročne
  • @mesiac- behajte raz mesačne
  • @týždeň- behajte raz týždenne
  • @dennealebo @ polnoc- behajte raz denne
  • @hodina- behať každú hodinu

5. Záver

V tomto rýchlom článku sme preskúmali cron pracovných miest a crontab.

Videli sme tiež množstvo príkladov výrazov, ktoré môžeme použiť v každodennej práci, alebo z ktorých jednoducho odvodíme ďalšie výrazy.


$config[zx-auto] not found$config[zx-overlay] not found