crontab

Cron Jobs Complete Beginners Tutorial

Cron Jobs Complete Beginners Tutorial
Cron je najužitočnejší obslužný program v operačnom systéme Linux alebo UNIX, ktorý umožňuje spúšťanie príkazov alebo skriptov v danom rozvrhu bez zásahu používateľa. Naplánované príkazy a skripty sa tiež nazývajú úlohy cron. Väčšinou sa používa na automatizáciu opakujúcich sa úloh, ako je spúšťanie naplánovaných záloh, čistenie dočasných súborov, údržba systému a rôzne ďalšie opakujúce sa úlohy. Je to podobné ako plánovač úloh v operačnom systéme Windows.

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 / skript

Zľava:

Ak chcete v poli zadať viac hodnôt, použite nasledujúce symboly operátora:

  1. Hviezdička (*): Ak chcete zadať všetky možné hodnoty pre pole
  2. Pomlčka (-): To supresniť rozsah hodnôt
  3. Čiarka (,): Ak chcete určiť zoznam hodnôt
  4. 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 / crontab

Tu 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 -e

Naprí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 -u -e

Naprí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 -e

Tu 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 / skript

Spustite ú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 / skript

Spustite ú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 / skript

Prvý 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 / skript

Spustite ú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 / skript

Spustite ú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 / skript

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 * * * *

Pomocou reťazcov

Nasledujúce reťazce možno tiež použiť na definovanie úlohy:

  1. @hodina: Vykonať prácu raz za hodinu, t.j.e., „0 * * * *
  2. @ polnoc: Vykonať prácu raz za deň, t.j.e., „0 0 * * *
  3. @denne: rovnako ako polnoc
  4. @týždeň: Vykonať prácu raz za týždeň, t.j.e., „0 0 * * 0
  5. @mesiac: Vykonať prácu raz za mesiac, t.j.e., „0 0 1 * *
  6. @ ročne: Vykonávať prácu raz ročne, t.j.e., „0 0 1 1 *
  7. @rok: to isté ako @ ročne
  8. @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 / skript

Preddefinované 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 -l

Zobraziť ú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 / crontab

Budete 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í so skutočným menom používateľa:

$ sudo crontab -u -l

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ú hodinu

Zobraziť 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.TXT

Odstrá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 -r

Povolenie 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é.

Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...