Cron je nástroj na plánovanie úloh v operačnom systéme Linux. Umožňuje automatické spúšťanie skriptov alebo príkazov v určitých časoch, intervaloch alebo pri určitých udalostiach.
Ak chcete používať program Cron, musíte vytvoriť súbor crontab
, ktorý obsahuje zoznam úloh a časové intervaly, kedy sa majú vykonať. Každá úloha v súbore crontab je reťazec, ktorý pozostáva z piatich polí oddelených medzerami:
* * * * * 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á ľubovoľnú hodnotu, napríklad ak pole minutes obsahuje *
, úloha sa bude spúšťať každú minútu. Ak chcete pre pole nastaviť konkrétnu hodnotu, napríklad každý deň o tretej hodine ráno, mali by ste napísať 0 3 * * * *
.
Ak chcete vytvoriť alebo upraviť súbor crontab, použite príkaz crontab -e. Každý používateľ môže mať svoj vlastný súbor crontab, ako aj systémový súbor /etc/crontab
, ktorý obsahuje úlohy spúšťané ako používateľ root.
Existuje príkaz cronjob
, ktorý umožňuje spúšťať úlohy vo vnútri kontajnerov Docker. Funguje podobne ako crontab
, ale úlohy sa môžu spúšťať vnútri kontajnera namiesto hostiteľského systému.
Ak chcete začať používať Cron v Linuxe, postupujte podľa nasledujúcich krokov:
1. Otvorte terminál a zadajte príkaz crontab -e
. Tým sa otvorí súbor crontab pre aktuálneho používateľa.
2. Do súboru crontab pridajte úlohu podľa vyššie opísaného formátu poľa. Ak napríklad chcete každú hodinu spustiť skript every_hour.sh
, pridajte riadok 0 * * * * * * /path/to/every_hour.sh.
3. Uložte zmeny a zatvorte súbor.
4. Pomocou príkazu crontab -l
overte, či bola úloha pridaná do programu crontab. Zobrazí sa zoznam všetkých úloh pridaných do crontab
.
5. Overte, či úloha beží podľa plánu pomocou príkazu tail -f /var/log/syslog
. Zobrazí sa výstup týkajúci sa vykonávania úlohy.
6. Ak chcete úlohu z crontab
odstrániť, použite príkaz crontab -r
.
Je potrebné mať na pamäti niekoľko dôležitých bodov:
crontab
môžete pridávať skripty aj príkazy. Ak však chcete spustiť skript, uistite sa, že má oprávnenie na spustenie(chmod +x /cesta/do/skript.sh)
.sudo crontab -e
na otvorenie súboru crontab
pre používateľa root.Všimnite si, že čas zadaný v súbore crontab
bude zodpovedať času na serveri, na ktorom je spustený program Cron. Ak používate vzdialený server, uistite sa, že je čas na serveri správne nakonfigurovaný.