Plánovanie pravidelných úloh pomocou Cron v Linuxe
cron
je linuxový program, ktorý sa používa na naplánovanie príkazu alebo skriptu, ktorý sa má vykonať neskôr. Môže sa tiež použiť na plánovanie pravidelne spúšťaných príkazov a skriptov. Programy naplánované pomocou cronu sa bežne označujú ako Cron Jobs. Jeho hlavné použitie je pre úlohy správy systému, ako sú pravidelné zálohy, pravidelné aktualizácie softvéru a iné podobné úlohy údržby.
Úvod
cron
beží ako démon v Linuxe, t.j. ako proces na pozadí. Umožňuje používateľom plánovať úlohy priamo pomocou príkazu crontab, ktorý v editore otvorí konfiguračný súbor s názvom Cron File. Pre každého používateľa sa vytvoria samostatné súbory Cron.
Vytvorenie súboru Cron a základná syntax
The crontab
príkaz je možné vykonať pomocou -e
príznak na úpravu existujúceho súboru Cron. Ak súbor ešte neexistuje, vytvorí sa. Ak používateľ volá príkaz prvýkrát a ak je v systéme Linux nainštalovaných viacero editorov súborov, príkaz požiada používateľa, aby si vybral predvolený editor zo zoznamu editorov.
Po výbere editora sa vytvorí a otvorí súbor cron pre používateľa. Teraz môžete zadať úlohy v súbore.
Všeobecná syntax na zadanie úlohy Cron je:
V podstate, bude prebiehať v určenú „minútu“ (0 – 59), „hodinu“ (0 – 23), „deň v mesiaci“ (1-31), mesiac (1-12), deň v týždni, (0-7, Pre nedeľu je možné použiť 0 alebo 7) v úlohe Cron. Pre zjednodušenie si uveďme príklad:
1 2 3 4 5 echo "Ahoj"
To znamená príkaz echo "Ahoj"
bude prebiehať každý piaty deň v týždni (piatok) a každý 3. deň v mesiaci, každý 4. mesiac v roku (apríl), v čase 02:01 (2. hodina prvá minúta).
Ak sa má rovnaký príkaz spustiť každý deň o 02:01, syntax bude vyzerať takto:
1 2 * * * echo "Ahoj"
The *
znamená „vždy“ alebo „pre všetkých“, napr. za všetky mesiace, za všetky dni v týždni atď.
Operátor príkazu (,
) možno použiť na zadanie zoznamu hodnôt, kedy sa má úloha opakovať. Napríklad:
0 2,3,4 * * * echo "Ahoj"
Toto spustí program každý deň o 2:00, 3:00 a 4:00.
podobne, spojovník (-
) operátor možno použiť na určenie rozsahu, pre ktorý sa má úloha opakovať. Napríklad:
0-20 2 * * * echo "Ahoj"
Toto spustí program o 02:00, 02:01, 02:02 a tak ďalej až do 02:20.
Nakoniec máme lomka ( /
) operátor. Tento operátor sa používa na určenie intervalovej hodnoty, podľa ktorej sa bude úloha opakovať. Napr. */15
v poli minút znamená, že úloha by sa mala opakovať každých 15 minút. 2-10/2
v poli hodiny určuje, že úloha sa bude opakovať medzi 2:00 a 10:00 po každých 2-hodinových intervaloch (2:00, 4:00, 6:00, 8:00, 10:00).
*/15 2-10/2 * * * echo "Ahoj"
Po vykonaní záznamu v súbore Cron uložte súbor a ukončite editor.
Mali by ste vidieť a „inštalácia nového crontabu“ správu v termináli po uložení a opustení súboru crontab.
Makrá
V programe Cron sú preddefinované určité makrá, ktoré špecifikujú niektoré bežne požadované časové intervaly, ako napríklad každú hodinu, každý deň, každý mesiac atď.
Ak chcete spustiť úlohu raz denne na začiatku dňa, t. j. o 00:00, použite makro @denne
. Toto je ekvivalentné 0 0 * * *
.
Môžete to vložiť do súboru Cron rovnakým spôsobom, ako je opísané vyššie.
Podobným spôsobom je možné použiť aj ostatné makrá, napr. @hodina
(0 minúta každej hodiny), @mesačne
(00:00 prvého dňa v mesiaci), @týždenne
(00:00 prvého dňa v týždni, @ročne
(00:00 prvého januára každého roka), @reštartovať
(pri každom spustení počítača).
Záver
V tomto článku sme sa naučili, ako pridať úlohy Cron na bežné vykonávanie v systéme Linux. Správne používanie Cron Jobs príde vhod aj pri tých najnáročnejších manuálnych úlohách, ktorým musí používateľ čeliť, napr. pravidelné mazanie starých protokolov, archivácia všetkých druhov studených údajov (údaje, ku ktorým sa zriedkavo dostanete) atď.