Naše webové stránky obsahují odkazy na partnerské weby. Pokud se prokliknete z našich stránek na stránky partnera a tam si zakoupíte jeho služby, obdržíme za zprostředkování provizi (Zjistit více informací). Tato forma spolupráce nijak neovlivňuje objektivnost našich recenzí. Každým nákupem přes proklik z našich stránek podpoříte naši redakci, abychom i do budoucna mohli tvořit kvalitní a užitečný obsah. Ďekujeme.
Důležité upozornění Všechny naše články píšou skuteční lidé. Nejsou to umělé texty od stroje.
Co je to cron a k čemu se používá?
Cron slouží k pravidelnému a opakovanému spouštění scriptů, programů a dalších úloh. V tomto článku si přiblížíme, jak se cron nastavuje, jaké má funkce a časové intervaly.
Co je to cron?
Cron je standardní unixový nástroj, který se používá k plánování příkazů pro automatické provádění v určitých intervalech. Můžete mít například skript, který vytváří webové statistiky, které chcete spouštět jednou denně automaticky třeba v 5:00. Cron dnes používá většina služeb, se kterými se běžně setkáváte. Kromě již zmiňovaných statistik se může jednat třeba o automatickou rozesílku emailů, generování scriptů, načítání zpráv, publikace článků v určitý čas, automatické zálohy a další.
Cron syntax
Soubor, do kterého se ukládají jednotlivé úlohy cronu se nazývá crontab a ten má pět polí – každé pole je označeno hvězdičkou – k určení data a času opakovaného provádění určité úlohy:
- Minuta – minuta hodiny po kterou bude příkaz spuštěn – v rozsahu od 0 do 59.
- Hodina – v jakou hodinu bude příkaz spuštěn – v rozsahu od 0 do 23.
- Den v měsíci – v který den v měsíci chcete spustit příkaz od 1 do 31.
- Měsíc – v jakém měsíci bude spuštěn zadaný příkaz – v rozsahu od 1 do 12.
- Den v týdnu – v který den v týdnu chcete spustit příkaz, v rozsahu od 0 do 6.
Kromě toho musíte v každém souboru crontab použít správné znaky.
- Hvězdička (*) – definuje všechny parametry plánování.
- Čárka (,) – pro udržení dvou nebo více časů provedení jednoho příkazu.
- Pomlčka (-) – pro určení rozsahu času při nastavování několika časů provádění jediného příkazu.
- Lomítko (/) – pro vytváření předem stanovených časových intervalů v určitém rozsahu.
- Poslední (L) – pro konkrétní účel k určení posledního dne v týdnu v daném měsíci. Například 3L znamená poslední středu.
- Den v týdnu (W) – pro určení nejbližšího dne v týdnu v daném čase. Například 1W znamená, že pokud je 1. sobota, příkaz se spustí v pondělí (3.).
- Hash (#) – pro určení dne v týdnu, následovaný číslem v rozmezí od 1 do 5. Například 1 # 2 znamená druhé pondělí.
Cron příklady
Níže uvedené názvy sh scriptů se mohou reálně lišit. Příklad je pouze pro pochopení časů cronu.
Příkaz | Význam příkazu |
0 0 * * * /bin/sh backup.sh | Provedení zálohy o půlnoci a spuštění jednou denně. |
0 6,18 * * * /bin/sh backup.sh | Provedení zálohy dvakrát denně v 6:00 a 18:00. |
0 */6 * * * /scripts/monitor.sh | Spuštění monitoring scriptů každých šest hodin. |
*/10 * * * * /home/user/script.sh | Každých 10 minut provést cron úlohu pro soubor skriptu, který je umístěný v domovském adresáři. |
0 * 20 7 * /bin/sh backup.sh | Spuštění zálohy každou hodinu každého 20. července. |
0 0 * * 2 * /bin/sh backup.sh | Spuštění zálohy o půlnoci každé úterý. |
* * * 1,2,5 * /script/script.sh | Spuštění příkazu v lednu, únoru a květnu. |
10-59/5 5 * * * /home/user/script.sh | Spuštění příkazu každých 5 minut v 5:00, počínaje 5:10. |
0 8 1 */3 * /home/user/script.sh | Spuštění příkazu čtvrtletně 1. den v 8:00. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh | Chcete-li nastavit plán pro více úloh na jednu úlohu cron (oddělení středníkem). |
@reboot /scripts/script.sh | Provedení určitého úkolu při každém spuštění systému. |
0 0 1 * * /home/user/script.sh | Spuštění příkazu první den každého měsíce. |
Nastavení cronu u českých hostingů
Většina hostingových společností má v administraci nástroje na vytváření cron příkazů a nemusíte je tedy psát ručně.
Ebola.cz – Administrace – Vlastní řešení
Ebola.cz má cron job nastavení v administraci pomocí vlastního rozhraní.
exon.io – Administrace – cPanel
exon.io používají cPanel. Na screenech níže Vám představíme, jak snadno lze přes cPanel cron job nastavit.
Vše je pomocí cPanelu snadno nastavitelné a rovněž editovatelné.
TELE3 – Administrace – Vlastní řešení
TELE3 má cron job nastavení v administraci pomocí vlastního rozhraní.
Minimální interval cronu
Minimální interval klasického cronu je 60sec. Některé hostingové společnosti tento interval nabízejí.
Pokud nenabízejí a Vy jej přeci jen potřebujete, tak máte dvě možnosti:
- Využít jiný hosting, který tuto možnost má.
- Využít služeb crontabů – jsou na to specializované služby, které umožní spustit Váš script externě – pokud je přístupný „zvenku“.
Většina běžně používaných nástrojů nepotřebuje a nevyžaduje minutový cron, takže pokud pro Vás tato hodnota není důležitá, tak si můžete vybrat hosting podle jiných parametrů. Využít můžete třeba naši kategorii: Nejoblíbenější hosting.
Máš někde seznam těch, kteří mají minutový crony?
Dám to dohromady. Nevím jestli od všech, ale pokusím se o co největší seznam.
Hele, suprově vysvětlené.