V tomto tutoriáli vám poskytneme základné predstavenie všetkého, čo potrebujete pre plánovanie úlohy s cron. To zahrnuje základnú syntax cronu, úpravy súboru crontab, naplánovanie úlohy s cron pomocou niekoľkých príkladov, zobrazenie úlohy cron atď.
Základy Cron Job
Poďme pochopiť niektoré základy úlohy cron.
Čo je Crond?
Crond je démon v systéme Linux, ktorý beží na pozadí a každú minútu kontroluje, či je v tom čase naplánovaná nejaká úloha. Ak existuje, vykonáva túto prácu, inak zostáva neaktívna.
Syntax úlohy Cron
Syntax úlohy cron je nasledovná:
* * * * * príkaz / skriptZľava:
- Prvý * zodpovedá minútam (0-59)
- Druhý * zodpovedá hodinám (0-23)
- Tretí * zodpovedá Dňu v mesiaci (1-31)
- Štvrtý * zodpovedá mesiacu v roku (1-12)
- Piaty * zodpovedá Dňu v týždni (0-6, nedeľa až sobota)
Ak chcete v poli zadať viac hodnôt, použite nasledujúce symboly operátora:
- Hviezdička (*): Ak chcete zadať všetky možné hodnoty pre pole
- Pomlčka (-): To supresniť rozsah hodnôt
- Čiarka (,): Ak chcete určiť zoznam hodnôt
- Separátor (/): Ak chcete určiť krokovú hodnotu
Úpravy súboru Crontab
Crontab je súbor, ktorý obsahuje naplánované úlohy v konkrétnej syntaxi. Existujú dva typy súborov crontab; jeden pre úlohy cron špecifické pre systém a druhý pre úlohy cron špecifické pre používateľa.
Úlohy systému cron
Cronové úlohy systému sú umiestnené v / etc / crontab spis a / etc / cron.d adresár a sú spustené / etc / cron.každú hodinu, / etc / cron.denne, / etc / cron.týždenne a / etc / cron.mesačne. K týmto súborom má prístup iba správca systému.
Správca systému môže definovať úlohu cron pomocou nasledujúceho príkazu:
$ nano / etc / crontabTu je syntax úlohy v / etc / crontab spis:
# min hr dayofmonth mesiac dayofweek príkaz užívateľského mena* * * * * user1 ifconfig
Užívateľsky špecifické úlohy cron
Užívateľsky špecifické úlohy cron sa nachádzajú v /var / cievka / cron / crontabs adresár. Aj keď môžete tieto úlohy upravovať manuálne, odporúča sa ich upravovať pomocou príkazu crontab -e.
Štandardný užívateľ môže definovať úlohu cron pomocou nasledujúceho príkazu:
$ crontab -eNapríklad, ak ste prihlásení ako „testovací“ používateľ, spustením príkazu crontab -e sa upraví súbor crontab pre „testovacieho“ používateľa. Podobne, ak ste prihlásený ako používateľ root, príkaz crontab -e upraví súbor crontab pre používateľa root.
Zadaním nasledujúceho príkazu v termináli upravte súbor crontab pre iných používateľov:
$ sudo crontab -uNapríklad, ak ste prihlásený ako používateľ „test1“ a chcete upraviť súbor crontab pre používateľa „test2“, bude to príkaz:
$ sudo crontab -u test2 -eTu je syntax úlohy cron, ktorú je možné pridať do súboru crontab:
# m h dayofmonth mesiac dayofweek príkaz* * * * * ifconfig
Na úlohách konkrétnych používateľov môžete vidieť, že nie je zadané žiadne „používateľské meno“.
Príkazy Crontab
Príkaz crontab sa používa na úpravu, výpis a odstránenie úloh cron:
- crontab -e Úprava súboru crontab aktuálneho používateľa
- crontab -l Na zobrazenie obsahu súboru crontab
- crontab -u [používateľské meno] Upraviť súbor crontab iného používateľa
- crontab -r Ak chcete odstrániť súbor crontab aktuálneho používateľa
- crontab -i Ak chcete zobraziť výzvu pred odstránením súboru crontab aktuálneho používateľa
Plánovanie práce s Cron
Pomocou Cron môžete spustiť úlohu v konkrétnom čase, dátume a intervaloch s minimálnou jednotkou v minútach, t.j.e., prácu môžete robiť každú minútu.
Ak chcete naplánovať úlohu s cron, otvorte súbor crontab pomocou metódy popísanej v predchádzajúcej časti. Po otvorení súboru crontab sa zobrazí výzva na výber textového editora. Zadaním čísla vyberte preferovaný textový editor. Posuňte zobrazenie nadol do dolnej časti súboru a úlohy pridajte podľa syntaxe opísanej vyššie. Každý riadok v súbore určuje jeden príkaz. Prvých päť položiek v riadku určuje naplánovaný čas a posledný záznam určuje, ktorý príkaz alebo skript sa má spustiť.
Príklad:
Nasledujúci riadok v súbore crontab naplánuje, aby úloha cron spustila príkaz / skript každú 30. minútu za 5 hodín každý deň v týždni od pondelka do soboty.
* / 30 5 * * 1-6 príkaz / skript
Zápisnice
V tomto poli určujeme minúty, kedy sa má príkaz vykonať. Zadáva sa od 0 do 59. * V tomto poli znamená spustiť úlohu každú minútu. Vo vyššie uvedenom riadku crontab znak * / 30 informuje úlohu cron, aby každých 30 minút spustila zadaný príkaz / skript.
Hodiny
V tomto poli určujeme hodiny, kedy sa má príkaz vykonať. Zadáva sa od 0 do 23. * V tomto poli znamená spustiť úlohu každú hodinu. Vo vyššie uvedenom riadku crontab hodnota 5 informuje úlohu cron, aby každých päť hodín spúšťala zadaný príkaz / skript.
Deň v mesiaci
V tomto poli určujeme konkrétne dni mesiacov, kedy chceme príkaz vykonať. Je uvedené od 1 do 31. * V tomto poli znamená každý deň. Vo vyššie uvedenom riadku crontab znak * informuje úlohu cron, aby každý deň spustila zadaný príkaz / skript.
Mesiac v roku
V tomto poli zadáme konkrétne mesiace, kedy chceme príkaz vykonať. Je uvedené od 1 do 12. * V tomto poli znamená každý mesiac. Vo vyššie uvedenom riadku crontab znak * informuje úlohu cron, aby každý mesiac spúšťala zadaný príkaz / skript.
Deň v týždni
V tomto poli určujeme konkrétne dni v týždni, kedy chceme príkaz vykonať. Zadáva sa od 0 do 6 od nedele do soboty (0 pre nedeľu a 6 pre sobotu). * V tomto poli znamená každý deň v týždni. Vo vyššie uvedenom riadku crontab povie * príkazu cron, aby spúšťal zadaný príkaz / skript každý deň v týždni.
Príklady úloh Cron
Tu je niekoľko príkladov úloh cron:
Spustite úlohu cron každých 15 minút
Ak chcete naplánovať spustenie úlohy cron na každých 15 minút, pridajte do súboru crontab nasledujúci riadok:
* / 15 * * * * príkaz / skriptSpustite úlohu cron každý deň o 5:00
Ak chcete naplánovať spustenie úlohy cron na 5 hodín každý deň, pridajte do súboru crontab nasledujúci riadok:
0 5 * * * príkaz / skriptSpustite úlohu cron každý deň o 17:00
Ak chcete naplánovať spustenie úlohy cron každý deň na 17:00, pridajte do súboru crontab nasledujúci riadok:
0 17 * * * príkaz / skriptPrvý deň každého mesiaca spustite prácu cron o 9:00
Ak chcete naplánovať spustenie úlohy cron na prvý deň každého mesiaca o 9:00, pridajte do súboru crontab nasledujúci riadok:
0 9 1 * * príkaz / skriptSpustite úlohu cron každú hodinu vždy 15. marca
Ak chcete naplánovať úlohu cron každú hodinu na 15. marca, pridajte do súboru crontab nasledujúci riadok:
0 * 15 3 * príkaz / skriptSpustite úlohu cron každých 5 hodín
Ak chcete naplánovať úlohu cron každých 5 hodín, pridajte do súboru crontab nasledujúci riadok:
0 * / 5 * * * príkaz / skriptSpustite úlohu cron každých 15 minút
Ak chcete naplánovať spustenie úlohy cron na každých 15 minút, pridajte do súboru crontab nasledujúci riadok:
* / 15 * * * *Pomocou reťazcov
Nasledujúce reťazce možno tiež použiť na definovanie úlohy:
- @hodina: Vykonať prácu raz za hodinu, t.j.e., „0 * * * *„
- @ polnoc: Vykonať prácu raz za deň, t.j.e., „0 0 * * *„
- @denne: rovnako ako polnoc
- @týždeň: Vykonať prácu raz za týždeň, t.j.e., „0 0 * * 0„
- @mesiac: Vykonať prácu raz za mesiac, t.j.e., „0 0 1 * *„
- @ ročne: Vykonávať prácu raz ročne, t.j.e., „0 0 1 1 *„
- @rok: to isté ako @ ročne
- @reštartovať: Vykonať prácu raz pri každom štarte
Napríklad na spustenie skriptu alebo príkazu každý týždeň by položka v súbore crontab bola:
@týždenný príkaz / skriptPreddefinované adresáre Cron
V systéme Linux existujú niektoré preddefinované adresáre cron, kde sa uložené skripty spúšťajú automaticky. Ak do týchto adresárov umiestnime ľubovoľný skript, automaticky sa vykoná v nakonfigurovanom čase.
- / etc / cron.denne
- / etc / cron.každú hodinu
- / etc / cron.mesačne
- / etc / cron.týždenne
Napríklad ak chcete spustiť skript raz za mesiac, budete ho musieť umiestniť do súboru / etc / cron.mesačne.
Zobraziť úlohy Cron
Zobraziť úlohy pre aktuálneho používateľa
Pomocou nasledujúceho príkazu môžete zobraziť všetky naplánované úlohy cron pre aktuálneho používateľa:
$ crontab -lZobraziť úlohy pre používateľov root
Ak chcete zobraziť všetky naplánované úlohy užívateľa root, zadajte v termináli nasledujúci príkaz:
$ mačka / etc / crontabBudete sa musieť prihlásiť ako užívateľ root alebo spustiť príkaz ako sudo.
Zobraziť úlohy pre ostatných používateľov
Ak chcete zobraziť všetky naplánované úlohy konkrétneho používateľa, zadajte v termináli nasledujúci príkaz, ktorý nahradí
Na spustenie tohto príkazu budete potrebovať oprávnenie sudo.
Zobraziť hodinové úlohy cron
Ak chcete zobraziť všetky úlohy cron, ktoré sú nakonfigurované na každú hodinu, zadajte nasledujúci príkaz v termináli:
$ ls -la / etc / cron.každú hodinuZobraziť denné úlohy cron
Ak chcete zobraziť všetky úlohy cron, ktoré sú nakonfigurované na každodenné spúšťanie, zadajte v termináli nasledujúci príkaz:
$ ls -la / etc / cron.denne /Zobraziť týždenné úlohy cron
Ak chcete zobraziť všetky úlohy cron, ktoré sú nakonfigurované na týždenné spúšťanie, zadajte v termináli nasledujúci príkaz:
$ ls -la / etc / cron.týždenne /Zobraziť mesačné úlohy cron
Ak chcete zobraziť všetky úlohy cron, ktoré sú nakonfigurované na mesačné spustenie, zadajte v termináli nasledujúci príkaz:
$ ls -la / etc / cron.mesačne /Zálohujte všetky úlohy Cron
Odporúča sa uchovať zálohu všetkých úloh cron v súbore, aby ste sa mohli v prípade odstránenia zotaviť. Ak chcete vytvoriť zálohu všetkých aktuálnych úloh, použite operátor presmerovania na presmerovanie výstupu crontab -l do súboru.
$ crontab -l> backup_cron.TXTOdstránenie všetkých naplánovaných úloh Cron
Ak chcete odstrániť všetky naplánované úlohy cron, použite príznak -r takto:
$ crontab -rPovolenie Cron
Prístup k príkazu crontab môžeme obmedziť pomocou dvoch súborov: / etc / cron.povoliť a / etc / cron.poprieť.
- / etc / cron.povoliť - Pridajte používateľov (jedného na riadok), ktorým chcete povoliť prístup k príkazom crontab. Títo používatelia môžu spúšťať plánované úlohy.
- / etc / cron.poprieť - Pridajte používateľov (jedného na riadok), ktorým chcete odmietnuť prístup k príkazom crontab. Títo používatelia nemôžu spúšťať naplánované úlohy.
Generátory syntaxe Crontab
Existujú niektoré webové stránky, ktoré umožňujú generovanie syntaxe pre crontabs. Tieto webové stránky uľahčujú generovanie výrazu crontab bez toho, aby ste si museli pamätať syntax. Aj keď pre generátory syntaxe sú k dispozícii rôzne webové stránky, napríklad crontabgenerator.com, generátor crontabu.org a cronmaker.com. Ten, ktorý najviac uprednostňujem a považujem za užitočný, je crontab.guru. Na základe vstupu používateľa vygeneruje výraz crontab, ktorý môžete skopírovať a vložiť do súboru crontab.
Záver
V tomto tutoriáli sme vysvetlili základné informácie o úlohách cron, ich syntaxi a spôsobe ich nastavenia. Diskutovali sme tiež o tom, ako zobraziť úlohy cron, vytvoriť zálohu a odstrániť ich, ak už nie sú potrebné.