Linux
Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
Adresa školky | Kostelní 134, 411 08 Štětí | ||
IČ | 46773509 | ||
Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
Označení vzdělávacího materiálu | VY_32_INOVACE_21_PSS_414 | ||
Název tématické oblasti (sady) | Operační systémy | ||
Název materiálu | Plánování úloh | ||
Anotace | Popisuje možnosti plánování spuštění úloh v systému pomocí démona Crond. Ukazuje způsob, jakým se úlohy plánují. Předkládá příklady plánování v atypických časech, cyklické plánování nebo jednorázové. | ||
Autor | Ivan Pomykacz | Jazyk | český |
Očekávaný výstup | Naplánuje spuštění úlohy v daný čas nebo cyklu. | ||
Klíčová slova | plánování úloh, cron, crontab | ||
Druh výukového zdroje | Výklad | Věková skupina žáků | 17+ |
Typ interakce | aktivita | Ročník | 3. |
Speciální vzdělávací potřeby | žádné | ||
Zhotoveno, (datum/období) | 29.4.2014 | Celková velikost |
Obsah
Čas od času se hodí, aby se provedla nějaká naplánovaná akce. Např. pročištění dočasných adresářů, ze kterých se odstraní soubory starší než ... Nebo spouštění pravidelných záloh vždy po práci. A co třeba automatizovaná kontrola/analýza log souborů za posledních 24 hodin.
Výhoda plánovače úloh spočívá v tom, že úloha nemusí běžet neustále v paměti a hlídat čas, kdy má provést požadovanou akci. Naopak, je tu plánovač, který dané úlohy spouští dle plánu.
Cron
V linuxových systémech je jedním z takových plánovačů cron
.
Je to démon/služba, která běží na pozadí a hlídá si tzv. crontab soubory, což jsou vlastně jen tabulky jednotlivých uživatelů,
kde je napsáno, co se má kdy spustit.
V systému jsou definované tzv. globální crontaby v adresáři /etc
.
Jmenovitě jde o
- cron.hourly
- cron.daily
- cron.weekly
- cron.monthly
Pokud do tohoto adresáře nahrajete skript, cron jej bude automaticky spouštět (každou hodinu, denně, týdně nebo měsíčně).
Podíváme-li se do těchto adresářů, tak např. /etc/cron.daily
není prázdný.
tux@wheezy:~$ ls /etc/cron.daily/ apt aptitude bsdmainutils dpkg exim4-base logrotate man-db mlocate passwd
Jsou zde skripty pro apt
(správce balíčků) nebo logrotate
, který má na starosti rotaci log souborů.
crontab
Plány spouštění se ukládají do crontabů, což jsou jednoduše tabulky, kde na každém řádku je definována samostatná úloha a její načasování.
Příklad plánu spuštění skriptu uklid.sh
každou středu, ve dvě hodiny ráno.
0 2 * * 3 uklid.sh
Pokud se podíváte na klíč zápisu (níže), hned pochopíte o čem jsou čísla 0, 2 a 3. Hvězdička má speciální význam a znamená každou hodnotu z dané množiny. Pokud je daná množina dny v měsíci, tak to budou všechny dny (tedy každý den) v daném měsíci.
# * * * * * příkaz # ┬ ┬ ┬ ┬ ┬ # │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ └───── den v týdnu (0 - 7) (0 až 6 jsou neděle až sobota, nebo lze použít 1 až 7 pro pondělí až neděle (neděle má tedy čísla 0, 7). # │ │ │ └────────── měsíc (1 - 12) # │ │ └─────────────── den v měsíci (1 - 31) # │ └──────────────────── hodina (0 - 23) # └───────────────────────── minuta (0 - 59)
Editace crontabu
Každý uživatel může příkazem crontab -l
vypsat svůj vlastní crontab.
tux@wheezy:~$ crontab -l no crontab for tux
Pokud žádný crontab nemá, zobrazí hláška, kterou vidíte výše.
Nový crontab se založí příkazem crontab -e
.
Jak záhy uvidíte, spustí se předdefinovaný editor (pravděpodobně nano
), ve kterém již bude otevřený dočasný soubor (v mém případě: /tmp/crontab.TjuJUp/crontab
).
Jakmile provedete potřebné změny a soubor uložíte (a ukončíte nano
), crontab vás informuje, že zavádí nový crontab.
tux@wheezy:~$ crontab -e no crontab for tux - using an empty one crontab: installing new crontab
Pokud nyní zadáme výpis crontabu, dostaneme:
tux@wheezy:~$ crontab -l 0 2 * * 3 uklid.sh
Společně ještě se zakomentovaným textem, který byl z ukázky vyňat.
Způsoby zápisu
-
každou druhou hodinu ..
*/2
, zápis pomocí/
dělí interval na požadovaný počet. od pondělí do pátku ..
1-5
, použitý symbol-
lze použít pro spojitý rozsah.v pondělí, středu a pátek ..
1,3,5
, symbolem,
lze vyjmenovat požadované hodnoty (pozor na mezery, ty se nepíší).
Uvedené způsoby zápisu lze samozřejmě kombinovat a použít i na jiné hodnoty než zmíněné.