Co je to cron a k čemu se používá

Co je to cron a k čemu se používá?

Publikováno: 3. září 2020|Aktualizováno: 10. července 2026|Affiliate prohlášení

Cron slouží k pravidelnému a opakovanému spouštění skriptů, programů a dalších úloh. V tomto článku si projdeme, co cron je, jak se zapisuje jeho syntaxe, ukážeme si praktické příklady a podíváme se, jak cron nastavíte na hostingu — včetně toho, jak úlohu otestovat a jakým chybám se vyhnout.

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 a chcete ho 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ě statistik jde třeba o automatickou rozesílku e-mailů, načítání dat z externích API, publikaci článků v určitý čas, automatické zálohy a mnoho dalšího.

Cron syntaxe

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í úlohy:

Cron syntaxe crontab
Struktura crontab: minuta, hodina, den v měsíci, měsíc, den v týdnu
  • Minuta — minuta hodiny, ve kterou bude příkaz spuštěn — v rozsahu 0 až 59.
  • Hodina — v jakou hodinu bude příkaz spuštěn — v rozsahu 0 až 23.
  • Den v měsíci — ve který den v měsíci chcete příkaz spustit — 1 až 31.
  • Měsíc — ve kterém měsíci bude příkaz spuštěn — v rozsahu 1 až 12.
  • Den v týdnu — ve který den v týdnu chcete příkaz spustit — v rozsahu 0 až 6 (0 = neděle).

Kromě čísel a hvězdiček můžete v crontab použít i speciální znaky:

  • Hvězdička (*) — zastupuje všechny hodnoty daného pole.
  • Čárka (,) — pro více konkrétních časů provedení jednoho příkazu.
  • Pomlčka (-) — pro určení rozsahu (např. 1-5).
  • Lomítko (/) — pro pravidelný krok v rozsahu (např. */10 = každých 10).

Cron příklady

Názvy sh skriptů se v praxi liší. Příklady slouží hlavně k pochopení zápisu časů.

PříkazVýznam
0 0 * * * /bin/sh backup.shZáloha o půlnoci, jednou denně.
0 6,18 * * * /bin/sh backup.shZáloha dvakrát denně — v 6:00 a 18:00.
0 */6 * * * /scripts/monitor.shSpuštění monitoringu každých šest hodin.
*/10 * * * * /home/user/script.shKaždých 10 minut spustit skript v domovském adresáři.
0 0 * * 2 /bin/sh backup.shZáloha o půlnoci každé úterý.
10-59/5 5 * * * /home/user/script.shKaždých 5 minut v 5:00, počínaje 5:10.
0 8 1 */3 * /home/user/script.shČtvrtletně, 1. den v 8:00.
* * * * * /scripts/a.sh; /scripts/b.shDva skripty v jedné úloze (oddělené středníkem).
@reboot /scripts/script.shSpuštění při každém startu systému.
0 0 1 * * /home/user/script.shPrvní den každého měsíce.

Pokud si zápisem nejste jistí, hodí se online nástroje typu crontab.guru, kde si zadaný výraz hned přeložíte do lidské řeči.

Jak nastavit cron na hostingu

Většina hostingových společností má nástroj na vytváření cron úloh přímo v administraci, takže je nemusíte psát ručně do crontabu. V praxi narazíte na dva přístupy — vlastní panel poskytovatele, nebo rozšířený cPanel.

V cPanelu najdete cron pod dlaždicí Cron Jobs: vyberete interval (nebo zadáte vlastní pole) a do pole s příkazem vložíte, co se má spustit. Nastavení je pak snadno editovatelné i smazatelné.

Konkrétní poskytovatele s cronem porovnáte v naší kategorii webhosting. Pokud provozujete náročnější aplikaci s vlastními workery, hodí se spíš VPS s plným přístupem k systémovému cronu.

Spouštění PHP skriptů přes cron

Na sdíleném hostingu se PHP skript nejčastěji spouští jedním ze dvou způsobů:

  • Přímo přes PHP CLI: /usr/bin/php /home/user/web/cron.php — spustí skript na serveru bez webového požadavku.
  • Přes URL: wget -q -O /dev/null https://vasedomena.cz/cron.php (nebo curl) — hodí se, když skript musí běžet v kontextu webu.

Výstup si nechte zapisovat do logu, ať víte, co se stalo: přidejte na konec >> /home/user/cron.log 2>&1.

Jak cron otestovat a ladit

Než se spolehnete, že úloha „nějak poběží", ověřte ji:

  • Spusťte příkaz ručně ve stejné podobě, jakou dáváte do cronu — pokud selže tady, selže i v cronu.
  • Používejte absolutní cesty ke skriptům i binárkám (/usr/bin/php, ne jen php) — cron má minimální prostředí a $PATH.
  • Nechte si posílat výstup do logu nebo na e-mail, ať chybu vidíte.

Časté chyby

  • Relativní cesty — skript nenajde soubory, protože se nespouští z „vaší" složky. Používejte absolutní cesty.
  • Chybějící interpret — u PHP/Python skriptu je potřeba plný příkaz s binárkou, ne jen název souboru.
  • Žádné logování — bez přesměrování výstupu netušíte, proč úloha selhala.
  • Špatná oprávnění — skript musí být spustitelný a přístupný uživateli, pod kterým cron běží.

Minimální interval cronu

Minimální interval klasického cronu je 60 sekund. Některé hostingové společnosti minutový cron nabízejí, jiné mají nejkratší interval delší (např. 5 nebo 15 minut). Pokud potřebujete kratší interval a hosting ho neumožňuje, máte dvě možnosti:

  • Vybrat hosting, který minutový cron má (nebo přejít na VPS s vlastním cronem).
  • Využít externí „cron-as-a-service" — služby, které váš skript spustí zvenčí přes URL, pokud je veřejně dostupný.

Většina běžných nástrojů minutový cron nevyžaduje, takže pokud pro vás tato hodnota není klíčová, vybírejte hosting podle jiných parametrů. Přehled poskytovatelů najdete v kategorii webhosting.

Zůstaňte informováni

Získejte nejnovější hostingové nabídky, kupóny a odborné tipy přímo do vašeho emailu.

Co je cron a jak ho nastavit: syntaxe a příklady