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.