cron - je to standardní nástroj v operačních systémech UNIX a Unix-podobných systémech, který vám umožňuje provádět úkoly na základě předem nastaveného plánu. Je to nepostradatelný nástroj pro automatizaci duplicitních úkolů, jako je aktualizace databáze, kopírování souborů, odesílání zpráv atd.
Princip cron je založen na použití souboru crontab, který obsahuje informace o úkolech, které mají být spuštěny podle plánu. Když systémový čas odpovídá jednomu z nastavených časových bodů v crontabu, cron spustí úkol podle zadaných parametrů.
Syntaxe crontab je velmi flexibilní a umožňuje vám nastavit plán úloh v různých formátech. Skládá se z pěti polí: minuty, hodiny, dny v měsíci, měsíce a dny v týdnu. Každé pole může obsahovat samostatnou hodnotu reprezentovanou číslem nebo symbolem"*", což znamená"každý". Kombinace těchto polí vám umožní vytvořit širokou škálu plánů provádění úkolů.
Principy práce cron
Základem práce cron je soubor crontab (cron table), který obsahuje úlohy pro plnění úkolů. Tento soubor může být pro každého uživatele jiný. Lze jej upravit pomocí příkazu crontab-e, který otevře soubor v textovém editoru.
Crontab představuje tabulku, která pro každý úkol udává čas jeho dokončení a příkaz, který má být dokončen. Čas je nastaven ve formátu "minuta hodina den měsíc den_nedělí". Aby byl úkol prováděn pravidelně, lze použít symbol"*", což znamená jakýkoli význam. Například, aby byl úkol splněn každou minutu, můžete zadat"****".
Crontab může také nastavit proměnné prostředí, které budou k dispozici při provádění úkolů. Může být užitečné například nastavit cestu k spustitelnému souboru nebo zadat hodnoty pro určité proměnné.
Kromě toho může crontab zadat příkaz, který bude dokončen před spuštěním úkolu. To může být užitečné, pokud potřebujete před úkolem provést nějaké předběžné nastavení nebo kontrolu.
Původní účel
Základní myšlenkou cron je nastavit čas nebo frekvenci provádění úkolu jako textový soubor známý jako "crontab", který bude poté interpretován a proveden systémem cron.
Čas plnění úkolu je definován pomocí speciální syntaxe, která se skládá z pěti nebo šesti polí (minuty, hodiny, dny v měsíci, měsíce, dny v týdnu, roky), oddělených mezerami nebo tabulací. Každé pole může obsahovat jednu nebo více hodnot nebo rozsahů hodnot.
Například, pokud potřebujete úkol splnit každý den v 10 hodin, můžete zadat "0 10 * * *". Pokud máte úkol dokončit každou hodinu, můžete zadat "0 * * * *". Pokud je nutné splnit úkol každé pondělí v 15 hodin, můžete zadat "0 15 * * 1". A tak dále.
Cron také umožňuje použití speciálních znaků (jako jsou symboly hvězdičky a slechu) k určení opakujících se vzorců a periodicit.
Použití cron může výrazně zjednodušit život správce systému a automatizovat velké množství opakujících se úkolů. Je nepostradatelným nástrojem pro údržbu serverů a provádění různých procesů na pozadí.
Jak funguje cron v unixových systémech
Práce cron je založena na použití souboru crontab, který určuje úkoly, které mají být dokončeny. Každý uživatel systému může mít svůj vlastní soubor crontab, který obsahuje jeho osobní úkoly.
Formát záznamu úlohy v souboru crontab je poměrně jednoduchý a má následující strukturu:
- Minuta: 0 až 59
- Hodiny: 0 až 23
- Dny měsíce: od 1 do 31
- Měsíc: 1 až 12 nebo leden, únor, Mar atd.
- Dny v týdnu: 0 až 6 nebo sun, mon, tue atd.
- Tým: příkaz, který chcete provést
Například následující záznam v souboru crontab spustí příkaz "backup.sh" každý den ve 3: 00:
0 3 * * * /path/to/backup.sh
Pokud záznam v souboru crontab obsahuje značku hvězdičky"*", znamená to, že úkol bude dokončen kdykoli. Pomocí těchto záznamů můžete nastavit plánování úkolů v různých časových intervalech.
Kromě toho cron umožňuje používat speciální klíčová slova pro flexibilnější plánování úkolů. Například klíčové slovo "@daily " odpovídá záznamu "0 0 * * *", což znamená splnit úkol denně o půlnoci.
Standardní instalace unixových systémů již mají předinstalovaného démona cron, který se spustí při spuštění systému a každou minutu zkontroluje soubory crontab, aby zjistil, které úkoly je třeba provést.
Ačkoli se cron běžně používá k automatizaci rutinních úkolů a systémových úkolů, jeho flexibilita a snadné použití umožňují jeho použití v široké škále scénářů, od jednoduchých skriptů až po složité systémové procesy.
Příklady použití cron
plán cron založený na pevném čase lze použít ke spuštění úkolů v určitou dobu každý den, týden, měsíc nebo rok. Například je možné nastavit cron tak, aby pravidelně zálohoval databázi nebo posílal zprávy e-mailem každý den v určitou dobu.
Korun lze navíc využít k plnění úkolů s určitou periodicitou. Například je možné nastavit cron tak, aby spouštěl skript každou minutu, každou hodinu nebo každou noc v určitou dobu.
Kromě toho je možné použít cron ke spuštění úloh po konkrétní události. Můžete například nakonfigurovat cron tak, aby provedl příkaz po úspěšném dokončení předchozího úkolu nebo po určité změně v systému souborů.
Pro složitější scénáře použití lze kombinovat různé možnosti cron a nakonfigurovat úkoly tak, aby se prováděly v určitou dobu s určitou periodicitou nebo po určitých událostech.
Příklad 1: Spuštění skriptu každý den v 15:00:
0 15 * * * /path/to/script.sh
Příklad 2: Spuštění skriptu každou sobotu v 10: 30:
30 10 * * 6 /path/to/script.sh
Příklad 3: Spuštění skriptu každou minutu:
Příklad 4: Spuštění skriptu každou hodinu od 8:00 do 17: 00:
0 8-17 * * * /path/to/script.sh
Příklad 5: Spuštění skriptu každou hodinu od druhého do sedmého dne v měsíci:
0 * 2-7 * * /path/to/script.sh
Můžete také použít znaky " * " a " / " pro flexibilnější nastavení plánu cron. Například symbol " * "znamená" jakýkoli význam "a symbol" / "znamená"krok". Tímto způsobem lze nastavit cron tak, aby spouštěl úkoly každých 5 minut nebo každé 2 hodiny.
Poznámka: nastavení cron vyžaduje oprávnění správce nebo přístup k souboru cron.