Úloha Cron alebo Cron je časovo závislý plánovač bežný v systémoch Linux / Unix. Naplánuje pravidelné vykonávanie zadaných úloh používateľa v pevnom dátume, čase alebo intervaloch. Väčšina z týchto úloh sú skripty na vykonávanie funkcií, ako je zálohovanie a ďalšie. Na vytvorenie týchto úloh cron používame príkazy crontab. Crontab je príkaz / obslužný program UNIX používaný na vytváranie a správu úloh cron.
Ako uvidíte ďalej, vytváranie a úprava úloh cron je dosť jednoduchá. Najúžasnejšia časť je, že po vytvorení alebo úprave úlohy cron nemusíte reštartovať cron alebo dokonca počítač. Stačí uložiť súbor a môžete vyraziť.
Bežné použitie úloh Cron
- Nastavenie času hardvéru: Sieťový časový protokol používa veľa počítačov na nastavenie systémového času, ale nenastavuje čas hardvéru. S cron môžete nastaviť hardvérový čas na základe systémového času.
- Plánovanie úloh a spúšťanie programov so spustením denných programov: So službou cron môžete spustiť mnoho systémových služieb, ktoré vyžadujú denné výzvy, napríklad Logwatch.
- Automatické čistenie adresára, spustenie záložných programov a oveľa viac.
Základné časti príkazu cron
Štandardná syntax crontabu je uvedená nižšie:
a b c d e výstup POUŽÍVATEĽA / cesta / k / skriptu
1.Čas a dátum spolu s tým, ako bude úloha opakovaná, je špecifikovaných v piatich poliach:
-
- a: Zápisnica: (siahajúca od 0 - 59)
- b: Hodiny: (od 0 - 23 )
- c: Dni: (od 0 - 31 )
- d: Mesiace: (od 0 - 12 )
- e: Dni v týždni: (od 0 - 7. )
- a: Zápisnica: (siahajúca od 0 - 59)
Poznámka: Dni sa začínajú pondelkom. 0 a 7 predstavuje nedeľu
2. USERNAME
: Nezabudnite to nahradiť svojím používateľským menom
3. Konkrétne umiestnenie a skript, ktorý má spustiť cron, určuje tretí segment:
/ cesta / k / skriptu
4. Posledná časť definuje upozornenie používateľa po dokončení úlohy ako spôsob sledovania úloh:
výkon
Doručená pošta však môže byť plná menších úloh, ktoré sú často usmerňované. Ak tomu chcete zabrániť, môžete zakázať automatický výstup e-mailu pridaním nasledujúceho reťazca do príkazu cron:
> / dev / null 2> a 1 e.g a b c d e USERNAME / path / to / script> / dev / null 2> & 1
Ďalej cron používa ďalšie štyri hodnoty používané pri zadávaní viacerých hodnôt v poli. Oni sú:
- Hviezdička (*): Odkazuje na všetky hodnoty v poli.
- Čiarka (,): Používa sa na oddelenie zoznamu hodnôt v príkaze cron.
- Dash (-): Zadajte rozsah hodnôt.
- Lomka (/): rozdeľuje hodnotu do rôznych krokov.
Nastavenie úloh cron
Príkazy crontab sú zodpovedné za vytváranie a úpravy úloh cron, pretože súbory cron by sa nemali upravovať priamo. Crontab definuje, ako môžete vytvárať, upravovať, vypisovať, ladiť, inštalovať a odinštalovať úlohy cron.
Predtým, ako začnete s úlohami cron, je nevyhnutné zaistiť aktuálnosť pracovnej plochy alebo servera Linux vykonaním nasledujúcich príkazov:
aktualizácia sudo apt
Ak vo svojom systéme nemáte nainštalovaný balík cron, nainštalujte ho pomocou nasledujúceho príkazu:
sudo apt-get nainštalovať cron
Ako upraviť súbor crontab?
Na dokončenie procesu budete musieť nakonfigurovať úlohu cron. Používateľ prihlásený pri vytvorení úlohy cron sa automaticky stáva vlastníkom. To sa dá zmeniť vytvorením vlastníka úlohy, ktorý bude mať na starosti správu úlohy cron, ako uvidíme v tomto príspevku.
Ak chcete otvoriť konfiguračný súbor crontab pre aktuálne prihláseného používateľa, postupujte takto:
crontab -e
Systém vás vyzve, aby ste vybrali vhodný editor. V našom prípade zvolíme prvú možnosť (nano editor).
Na každý riadok môžete pridať jednu naplánovanú úlohu podľa svojich preferencií.
Po pridaní úloh dokončite uloženie súboru a ukončite prácu. Všetky poskytnuté pokyny prečíta a vykoná démon cron. Zmeny sa použijú aj bez reštartovania systému, pretože úložisko sa aktualizuje automaticky.
Upravte crontab pre iného používateľa
Crontab je možné editovať pre rôznych používateľov pomocou príkazu v nižšie uvedenej syntaxi:
crontab -u other_username -e
Ako používať špeciálne znaky v príkazoch crontab
Znaky a operátori diktujú väčšie prispôsobenie vášho systému, pretože rozširujú možnosti úlohy cron.
- Lomka sa používa na rozdelenie časového reťazca na určené kroky. Napríklad na zálohovanie každých 30 minút môžeme použiť:
* / 30 * * * *
- Hviezdička (*) sa používa na vykonanie všetkých hodnôt, ktoré sa majú vykonať. Napríklad:
* / 15 ***
- Pomlčka (-) sa používa na určenie rozsahu aktivít, napríklad počtu dní. Pre
napríklad spustenie kódu o 6:00 každý pracovný deň, použijeme;
0 6 * * 1-5 / root / backup.š
Tu 06 znamená 6:00 - 1 - 5 znamená počet dní (pondelok až piatok).
- Čiarka určuje jednotlivé prípady, kedy sa má kód spustiť:
0 4 * * 2,4 / root / záloha.š
Vyššie uvedený príkaz vykoná váš kód skriptu v utorok a štvrtok o 4:00.
- Môžete tiež kombinovať rôzne zástupné znaky, aby ste svoje príkazy ešte viac prispôsobili. Napríklad na vykonanie nášho skriptu každý druhý deň o 35 minútach po hodine môžeme použiť nasledujúci príkaz:
35 1-23 / 2 * * * / cesta / k / skriptu / skriptu.š
1-23 určuje rozsah hodín, / 2 nastaví interval na každú druhú hodinu.
Možnosti Cron
- Zoznam všetkých úloh cron
Možno budete chcieť uviesť zoznam úloh cron vo vašom systéme bez toho, aby ste odomkli konfiguračný súbor crontab. Môžete to urobiť spustením terminálu a zadaním príkazu nižšie:
crontab -l
Tento príkaz obsahuje zoznam všetkých úloh cron, ktoré sa nachádzajú vo vašom systéme.
- Odstráňte všetky úlohy crontab
Na odstránenie všetkých príkazov crontab môžete použiť nasledujúci príkaz:
crontab -r
- Odstráňte úlohu cron pre iného používateľa.
crontab -r -u other-username
Použite reťazce v Crontabe
Reťazce sú pre vývojárov nesmierne užitočnými nástrojmi, pretože sa vyhýbajú opakovanému zápisu kódových segmentov. Našťastie crontabs podporuje rôzne hodnoty reťazcov. Zahŕňajú:
@hodina:
-rovnaké ako - „0 * * * *“ (Vykonáva sa raz za hodinu)@ polnoc:
-rovnaké ako - „0 0 * * *“ (Vykonáva sa raz za deň)@denne:
rovnako ako polnoc@týždeň:
-rovnaké ako - „0 0 * * 0“ (Vykonáva sa raz za týždeň)@mesiac:
-rovnaké ako - „0 0 1 * *“ (Vykonáva sa raz za mesiac)@ ročne:
-rovnaké ako - „0 0 1 1 *“ (Vykoná sa raz za rok)@rok:
podobne ako @ rocne@reštartovať:
Vykonáva sa raz po každom reštarte / reštarte / štarte.
Dobrý príklad; ak máte záložný skript, ktorý chcete spustiť každý deň, použite nasledujúci príkaz:
@denne / cesta / k / backup_script.š
Príklady úloh cron
Tu je zoznam základných úloh cron, ktoré je možné použiť pri začiatku:
-
- Postup spustenia skriptu každú minútu:
* * * * * / váš / skript / cesta.š
- Spustenie skriptu každých 40 minút:
40 * * * * / váš / skript / cesta.š
- Postup spustenia skriptu každú hodinu:
0 * * * * / váš / skript / cesta.š
- Postup spustenia skriptu každú polnoc:
0 0 * * * / váš / skript / cesta.š
- Ak chcete spustiť skript každých 23 minút po polnoci, 2:00 a 4:00 každý deň:
23 0-23 / 2 * * * / váš / skript / cesta.š
- Ak chcete spustiť skript o 4.05 každú nedeľu.
5 4 * * slnko / váš / skript / cesta.š
- Spustiť skript počas týždňa o 22:00.
0 22 * * 1-5 / váš / skript / cesta.š
- Spustiť scenár 1. decembra - polnoci.
0 0 0 12 * / váš / skript / cesta.š
- V sobotu o polnoci spustiť scenár.
0 0 * * 6 / váš / skript / cesta.š
- Spustiť skript každú hodinu.
0 * * * * / váš / skript / cesta.š
- Postup spustenia skriptu každú minútu:
Na týchto základných príkladoch sa dozviete viac o postupnosti a o tom, ako ju možno upraviť.
Obmedzenie prístupu Cron
Vidíme, že úlohy cron môžu byť veľmi užitočné, najmä ak si chcete automatizovať svoje úlohy. Rizikové však môže byť aj to, ak systém umožňuje ľubovoľnému používateľovi vytvoriť úlohu cron. Aj keď to nemá vplyv na osobné údaje, niektoré úlohy cron môžu vyžadovať pomerne veľké množstvo systémových prostriedkov, a tak zaostávajú za počítačom. Aby sa zabránilo takýmto scenárom, môže správca systému (užívateľ root) vytvoriť / etc / cron.povoliť
alebo / etc / cron.poprieť
súbor, ktorý obsahuje iba používateľov, ktorí môžu „vytvoriť / nevytvoriť“ práca cron.
The / etc / cron.povoliť
súbor obsahuje používateľov, ktorí môžu vytvárať, upravovať, zobrazovať alebo odstraňovať súbory crontab. Ak tento súbor neexistuje, všetci používatelia môžu vytvárať a spravovať úlohy cron okrem tých, ktoré sú v priečinku / etc / cron.poprieť
spis. Ak žiadny z týchto súborov nie je k dispozícii, na spustenie príkazu crontab sú potrebné oprávnenia superužívateľa.
Teraz, keď ste zabránili používateľom bez oprávnenia root vytvárať úlohy cron, ak už nejaké mali, môžete zvážiť pridanie ich úloh cron do súboru root crontab. Ale je tu hádanka - Pridaním úloh cron do koreňového adresára crontab to nespustí ich úlohy cron ako root? Tu prichádza význam poľa USERNAME, o ktorom sme hovorili vyššie v syntaxi príkazu cron. Napríklad nasledujúci príkaz:
0 * * * * fosslinux / cesta / do / skript.š
Bude bežať ako užívateľská úloha „fosslinux“ cron a nie ako užívateľ root.
Záver
Teraz máte jasného sprievodcu používaním úloh Cron na automatizáciu rôznych úloh vo vašom systéme. To by vás nemalo zamieňať s aplikáciami Startup. Pomocou vyššie uvedených príkladov vyskúšajte a automatizujte jednoduché skripty. Postupom času môžete kombinovať špeciálne postavy a divoké karty, aby ste mohli vykonávať oveľa všednejšie úlohy. Ak ešte len začínate, bolo by skvelé prečítať si náš príspevok v tutoriáli skriptovania bash s príkladmi, ktoré vám pomôžu vytvoriť prvý skript.