Linux obsahuje správu pravidelných úkonů - cron. K němu existuje prima rozhraní - crontab.

Když chceme vidět existující pravidelné úkony, pak napíšeme:

$ crontab -l

Pokud chceme seznam editovat, pak je to příkaz:

$ crontab -e


Editace je možná pomocí přednastaveného editor - více zde.

Záznamy jsou pak v následující podobě:

* * * * * /bin/execute/moje/skript1.sh

 

Těchto pět hvězdiček určuje časování jednotlivých skriptů.

* - minuty (0 - 59)

* - hodiny (0 - 23)

* - dny (1 - 31)

* - měsíce (1 - 12)

* - den v týdnu (0 - 6) - 0 je neděle

 

Takže předchozí zápis spustí skript každou minutu, každou hodinu, každý den, každý měsíc.

 

Pokud chceme spouštění jinak, musíme nahradit hvězdičky čísly:

0 3 * * 1 - je zápis pro spuštění vybraného skriptu každé pondělí ve 3:00 ráno.

 

Podobně můžeme použít i interval - každý pracovní den ve tři ráno bude:

0 3 * * 1-5

 

Lze využít i seznamu hodnot oddělených čárkou - pro spuštění skriptu každou 15tou a 45tou minutou bude

15,45 * * * *

 

Nebo jiní zápis pro spuštění skriptu každý 5 minut je:

*/5 * * * *

 

Pojmenované zápisy

Nemusíme se trápit s určitými definičními zápisy, lze využít zjednodušení:

@reboot - spustí se po restartu

@yearly - spustí se 1.1. každý rok (0 0 1 1 *)

@annually - stejné jako @yearly

@monthly - měsíční spuštění (0 0 1 *  *)

@weekly - týdně (0 0 * * 0) - zde každou neděli - záleží na čísle dne, které zvolíme

@daily - denně (0 0 * * *) - zde každou půlnoc - záleží na nastavené hodině

@midnight - stejné jako daily - v případě 0 jako nastavené hodiny

@hourly - každou hodinu (0 * * * *)

 

Takže zápis do crontabu může být tento:

@daily /bin/execute/hodinove.sh

 

Logování

Lze nastavit výstup ze skriptu, ten je směrován do emailové schránky uživatele skritpu (pravděpodobně root). Toto lze změnit na specifický soubor s výstupem:

@daily /bin/execute/hodinove.sh >> /var/log/skripty/hodinove.log 2>&1

 

Kde konec zápisu obsahuje dvě čísla - výstupy.

1 - STDOUT - standarní výstup

2 - STDERR - standardní cyhová výstup

 

2>&1 - bude jeden soubor pro oba výstupy

 

Znak >> nastaví připojení nových záznamů na konec souboru, jiná možnost je > - to způsobí přepsání souboru s logy.

 

Výstup lze posílat pomocí emailu:

MAILTO="This email address is being protected from spambots. You need JavaScript enabled to view it." @daily /bin/execute/hodinove.sh

nebo:

@daily /bin/execute/hodinove.sh | mail -s "Cron vystup" This email address is being protected from spambots. You need JavaScript enabled to view it. - pro tento výstyup je nutné nainstalovat mailx

$apt-get install mailx