Cron je nástroj pro plánování úloh v operačním systému Linux. Umožňuje automatické spouštění skriptů nebo příkazů v určitý čas, v určitých intervalech nebo při určitých událostech.
Chcete-li používat program Cron, musíte vytvořit soubor crontab
, který obsahuje seznam úloh a časové intervaly, kdy mají být provedeny. Každá úloha v souboru crontab je řetězec, který se skládá z pěti polí oddělených mezerami:
* * * * * command_to_execute
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday = 0 or 7)
| | | +------- month (1 - 12)
| | +--------- day of the month (1 - 31)
| +----------- hour (0 - 23)
+------------- minutes (0 - 59)
*
znamená libovolnou hodnotu, například pokud pole minutes obsahuje *
, úloha se bude spouštět každou minutu. Pokud chcete pro některé pole nastavit konkrétní hodnotu, například každý den ve tři hodiny ráno, měli byste napsat 0 3 * * * *
.
Chcete-li vytvořit nebo upravit soubor crontab, použijte příkaz crontab -e. Každý uživatel může mít svůj vlastní soubor crontab a také systémový soubor /etc/crontab
, který obsahuje úlohy spouštěné jako uživatel root.
Existuje příkaz cronjob
, který umožňuje spouštět úlohy uvnitř kontejnerů Docker. Funguje podobně jako crontab
, ale úlohy lze spouštět uvnitř kontejneru místo v hostitelském systému.
Chcete-li začít používat příkaz Cron v systému Linux, postupujte podle následujících kroků:
1. Otevřete terminál a zadejte příkaz crontab -e
. Tím se otevře soubor crontab pro aktuálního uživatele.
2. Do souboru crontab přidejte úlohu podle výše popsaného formátu pole. Chcete-li například každou hodinu spustit skript every_hour.sh
, přidejte řádek 0 * * * * * * /path/to/every_hour.sh
.
3. Uložte změny a zavřete soubor.
4. Pomocí příkazu crontab -l
ověřte, zda byla úloha přidána do crontab. Zobrazí se seznam všech úloh přidaných do crontab
.
5. Ověřte, zda úloha běží podle plánu, pomocí příkazu tail -f /var/log/syslog
. Zobrazí se výstup související s prováděním úlohy.
6. Pokud chcete úlohu z crontab
odstranit, použijte příkaz crontab -r
.
Je třeba mít na paměti několik důležitých bodů:
crontab
můžete přidávat skripty i příkazy. Pokud však chcete spustit skript, ujistěte se, že má oprávnění ke spuštění(chmod +x /path/to/script.sh)
.sudo crontab -e
, který otevře soubor crontab
pro uživatele root.Všimněte si, že čas zadaný v souboru crontab
bude odpovídat času na serveru, na kterém je spuštěn Cron. Pokud používáte vzdálený server, ujistěte se, že je čas na serveru správně nakonfigurován.