Cron: plánovač úloh pre UNIX/Linux - automatizácia cez crontab
Cron: praktický návod na crontab pre UNIX/Linux — naučte sa plánovať a automatizovať úlohy, spravovať zálohy, sťahovanie a údržbu efektívne pomocou cron.
Cron je počítačový program, ktorý možno použiť na to, aby počítač vykonával úlohy v určitých časových intervaloch. Používa sa v operačných systémoch UNIX a v operačných systémoch podobných UNIXu, ako je napríklad Linux.
Cron možno použiť na plánovanie väčšiny opakujúcich sa úloh. Často sa používa na automatizáciu úloh súvisiacich s údržbou alebo správou počítača alebo počítačovej siete, hoci sa dá použiť aj na mnohé iné úlohy, ako je sťahovanie súborov z internetu a sťahovanie e-mailov v konkrétnych časoch alebo termínoch.
Názov počítačového programu cron pochádza zo slova cron, ktoré je odvodené od gréckeho slova pre čas, χρόνος (chronos).
Cron sa nastavuje úpravou súboru s názvom crontab (tabuľka cron). V tomto súbore sú uvedené konkrétne úlohy, ktoré sa majú v počítači spustiť, a čas, kedy sa majú spustiť.
Galéria obrázkov
1 ObrázokAko cron funguje a kde sú crontaby
Cron beží ako démon na pozadí a pravidelne kontroluje crontab záznamy. Existujú systémové crontaby (napr. /etc/crontab, zložka /etc/cron.d/) a používateľské crontaby (obvykle v /var/spool/cron/crontabs/ alebo spravované príkazom crontab). Systémový súbor /etc/crontab má často navyše jednu kolónku pre používateľa, ktorý sa má príkaz spustiť.
Formát záznamu v crontabe
Základný riadok v crontabe má päť časových polí a potom príkaz, ktorý sa spustí:
minúta hodina deň-mesiaca mesiac deň-týždňa príkaz Hodnoty môžu byť čísla, rozsahy, zoznamy alebo krokové hodnoty:
- minúta: 0–59
- hodina: 0–23
- deň-mesiaca: 1–31
- mesiac: 1–12 (alebo skratky ako Jan, Feb ... podľa implementácie)
- deň-týždňa: 0–7 (0 a 7 zvyčajne znamenajú nedeľa) alebo skratky Mon, Tue ...
Príklady zápisov v poliach:
*/5— každých 5 minút1-5— od 1. do 5. minúty/hodiny/...0,15,30,45— vymenované hodnoty
Bežné príklady
# každý deň o 02:30 30 2 * * * /usr/local/bin/backup.sh # každých 5 minút */5 * * * * /usr/bin/php /home/user/script.php >> /var/log/script.log 2>&1 # každé pondelok o polnoci 0 0 * * 1 /home/user/weekly-task.sh Cron tiež podporuje tzv. "špeciálne" reťazce, ktoré zjednodušujú plánovanie:
@reboot— spustiť pri štarte systému@hourly,@daily,@weekly,@monthly,@yearly
Správa crontabu
- crontab -e — upraviť crontab používateľa v prednastavenom editore.
- crontab -l — zobraziť aktuálny crontab používateľa.
- crontab -r — odstrániť crontab používateľa.
- Systémové crontaby sa spravujú úpravou súborov v
/etc/a pomocou konfigurácie balíka cronu (závisí od distribúcie).
Dôležité tipy a odporúčania
- Používajte absolútne cesty k príkazom a súborom (napr.
/usr/bin/python3), pretože crontab má obmedzené prostredie PATH. - V crontabe môžete nastaviť premenné prostredia, napríklad
MAILTO,PATH,SHELL. Napríklad:MAILTO="[email protected]" PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - Presmerovanie výstupu je dôležité, aby ste zachytili chyby a nezahltili e-mailové hlásenia:
> /var/log/task.log 2>&1. - Testujte príkaz priamo v shelli pred vložením do crontabu.
- Ak potrebuje skript bežať len raz, zvážte použitie systémového plánovača alebo cron vstupu s
@reboota kontrolou záznamu vykonania. - Anacron je doplnok vhodný pre notebooky alebo počítače, ktoré nie sú zapnuté 24/7 — zabezpečí spustenie úloh, ktoré vynechal cron počas vypnutia systému.
- Všímajte si časové pásma a letný čas — cron používa systémové nastavenie času. Ak potrebujete iné správanie, môžete explicitne nastaviť
TZv crontabe alebo volať príkazy s konverziou času.
Diagnostika a logy
Výkon cron úloh môžete sledovať cez systémové logy. Namiesto jednotného umiestnenia sa logy môžu nachádzať v rôznych súboroch podľa distribúcie:
/var/log/cron(niektoré systémy)/var/log/syslog(Debian/Ubuntu, hľadajte správy od cron)journalctl -u cron.servicealebojournalctl -u crond.servicepri systéme s systemd
Bezpečnosť a práva
Cron spúšťa úlohy s právami používateľa, ktorého crontab upravujete. Systémové crontaby môžu spúšťať úlohy ako root — buďte preto opatrní pri umiestňovaní skriptov a pri oprávneniach. Uistite sa, že skripty neobsahujú zraniteľné miesta a že sú správne zabezpečené proti zneužitiu.
Zhrnutie
Cron je jednoduchý, ale veľmi výkonný nástroj na plánovanie a automatizáciu opakujúcich sa úloh v systémoch UNIX a Linux. Správne nastavený crontab ušetrí čas a zníži manuálnu prácu, pričom je dôležité rozumieť formátu záznamov, prostrediu, v ktorom úlohy bežia, a vedieť diagnostikovať prípadné problémy v logoch. Pri práci s cronem používajte absolútne cesty, presmerovanie výstupu a zvážte použitie anacronu pre stroje, ktoré nebývajú nepretržite zapnuté.
Otázky a odpovede
Otázka: Čo je to kron?
Odpoveď: Cron je počítačový program, ktorý sa používa na plánovanie úloh v určitých časových intervaloch.
Otázka: Kde sa používa program Cron?
Odpoveď: Cron sa používa v počítačových operačných systémoch UNIX a v operačných systémoch podobných UNIXu, ako je napríklad Linux.
Otázka: Aké úlohy možno naplánovať pomocou programu Cron?
Odpoveď: Pomocou programu Cron možno naplánovať väčšinu opakujúcich sa úloh. Často sa používa na automatizáciu úloh súvisiacich s údržbou alebo správou počítača alebo počítačovej siete, hoci sa dá použiť aj na mnohé iné úlohy, napríklad na sťahovanie súborov z internetu a sťahovanie e-mailov v konkrétnych časoch alebo termínoch.
Otázka: Z čoho pochádza názov Cron?
Odpoveď: Názov počítačového programu Cron je odvodený od slova cron, ktoré pochádza z gréckeho slova pre čas, χρόνος (chronos).
Otázka: Ako sa program Cron nastavuje?
Odpoveď: Program Cron sa nastavuje úpravou súboru s názvom crontab (tabuľka cron). V tomto súbore sú uvedené konkrétne úlohy, ktoré sa majú v počítači spustiť, a čas, kedy sa majú spustiť.
Otázka: Čo je crontab?
Odpoveď: Crontab je súbor, ktorý obsahuje zoznam konkrétnych úloh, ktoré sa majú pre počítač spustiť, a kedy sa majú spustiť.
Otázka: Na aký druh opakujúcich sa úloh možno použiť Cron?
Odpoveď: Pomocou Cronu možno automatizovať väčšinu opakujúcich sa úloh súvisiacich s údržbou alebo správou počítača alebo počítačovej siete. Možno ho použiť aj na mnohé iné úlohy, ako je napríklad sťahovanie súborov z internetu a sťahovanie e-mailov v konkrétnych časoch alebo termínoch.
Súvisiace články
Autor
AlegsaOnline.com Cron: plánovač úloh pre UNIX/Linux - automatizácia cez crontab Leandro Alegsa
URL: https://sk.alegsaonline.com/art/24288
Zdroje
- unixgeeks.org : "Newbie Introduction to cron"
- quora.com : "What is the etymology of cron"
- pubs.opengroup.org : The Open Group Base Specifications Issue 7 — IEEE Std 1003.1, 2013 Edition