Cron (Plánovač úloh)

Cron je systémová služba, která běží na pozadí a neustále kontroluje konfigurační soubory (tzv. crontab), aby zjistila, zda v aktuální minutu nemá spustit nějaký příkaz nebo skript.

1. Soubor crontab

Každý uživatel v systému může mít svůj vlastní soubor s úlohami. K jeho úpravě slouží příkaz:

crontab -e (editace)

crontab -l (výpis naplánovaných úloh)

2. Formát zápisu (Syntaxe)

Zápis v crontabu se skládá z pěti časových polí a samotného příkazu.

* * * * * příkaz, který se má provést
- - - - -
| | | | |
| | | | +----- den v týdnu (0 - 6) (neděle = 0)
| | | +------- měsíc (1 - 12)
| | +--------- den v měsíci (1 - 31)
| +----------- hodina (0 - 23)
+------------- minuta (0 - 59)

3. Praktické příklady

Časový zápis	Význam
0 5 * * *	Každý den v 5:00 ráno.
30 18 * * 1-5	Každý pracovní den v 18:30.
0 0 1 * *	Prvního dne v měsíci o půlnoci.
* /15 * * * *	Každých 15 minut.
0 12 * * 0	Každou neděli v poledne.

4. Speciální zkratky

Moderní verze cronu umožňují místo čísel použít čitelnější zkratky:

@reboot: Spustí příkaz jednou po startu systému.

@daily: Spustí příkaz jednou denně (shodné s 0 0 * * *).

@hourly: Spustí příkaz každou hodinu (shodné s 0 * * * *).

5. Důležitá pravidla a rady

Absolutní cesty: Cron nemá stejné prostředí (PATH) jako běžný uživatel. Vždy používejte celé cesty (např. /usr/bin/python3 místo pouhého python3).

Logování výstupu: Cron posílá výstupy standardně e-mailem. Je lepší je přesměrovat do souboru:

0 2 * * * /home/user/backup.sh > /home/user/log.txt 2>&1

Anacron: Pokud je počítač v době plánované úlohy vypnutý, standardní cron ji po zapnutí neprovede. K tomu slouží nástroj Anacron, který je běžný u notebooků.

Zajímavost: Existuje online nástroj Crontab.guru, který slouží jako interaktivní editor a „překladač“ cron výrazů do lidské řeči. Pomáhá předejít chybám, jako je nechtěné spuštění zálohování každou minutu místo jednou za hodinu.

Zpět na Linux