Úloha Cron nebo Cron je časově závislý plánovač běžný v systémech Linux / Unix. Naplánuje zadané úkoly uživatele tak, aby se spouštěly pravidelně ve stanoveném datu, čase nebo intervalech. Většina z těchto úkolů jsou skripty k provádění funkcí, jako jsou zálohy a další. K vytvoření těchto úloh cron používáme příkazy crontab. Crontab je příkaz / obslužný program UNIX používaný k vytváření a správě úloh cron.
Jak uvidíte níže, vytváření a úpravy úloh cron je poměrně jednoduché. Nejúžasnější na tom je, že po vytvoření nebo úpravě úlohy cron nemusíte restartovat cron nebo dokonce počítač. Jednoduše uložte soubor a můžete vyrazit.
Běžné použití úloh Cron
- Nastavení hardwarového času: Síťový časový protokol používá mnoho počítačů k nastavení systémového času, ale nenastavuje hardwarový čas. S cron můžete nastavit hardwarový čas na základě systémového času.
- Plánování úloh a spouštění programů spuštěných denních programů: Se službou cron můžete spouštět mnoho systémových služeb, které vyžadují denní výzvu, jako je Logwatch.
- Automatické čištění adresáře, spouštění záložních programů a mnoho dalšího.
Základní části příkazu cron
Standardní syntaxe crontabu je uvedena níže:
a b c d e UŽIVATELSKÉ JMÉNO / cesta / k / výstup skriptu
1.Čas a datum spolu s tím, jak opakovaná bude úloha, jsou určeny pěti poli:
-
- A: Minuty: (v rozmezí od 0-59)
- b: Hodiny: (od 0-23 )
- C: Dny: (od 0-31 )
- d: Měsíce: (od 0-12 )
- E: Dny v týdnu: (od 0-7. )
- A: Minuty: (v rozmezí od 0-59)
Poznámka: Dny začínají pondělkem. 0 a 7 představují neděli
2. UŽIVATELSKÉ JMÉNO
: Nezapomeňte toto nahradit svým uživatelským jménem
3. Konkrétní umístění a skript, který má spustit cron, určuje třetí segment:
/ cesta / do / skriptu
4. Poslední část definuje oznámení uživateli po dokončení úlohy jako způsob sledování úkolů:
výstup
Doručená pošta však může být plná drobných úkolů, které jsou často směrovány. Chcete-li tomu zabránit, můžete zakázat automatický e-mailový výstup přidáním řetězce níže do příkazu cron:
> / dev / null 2> & 1 e.g a b c d e UŽIVATELSKÉ JMÉNO / cesta / k / skriptu> / dev / null 2> & 1
Kromě toho cron používá další čtyři hodnoty použité při zadávání více hodnot v poli. Oni jsou:
- Hvězdička (*): Odkazuje na všechny hodnoty v poli.
- Čárka (,): Slouží k oddělení seznamu hodnot v příkazu cron.
- Pomlčka (-): Určete rozsah hodnot.
- Přední lomítko (/): rozděluje hodnotu do různých kroků.
Nastavení úloh cron
Příkazy crontab jsou zodpovědné za vytváření a úpravy úloh cron, protože soubory cron by neměly být upravovány přímo. Crontab definuje, jak můžete vytvářet, upravovat, vypisovat, ladit, instalovat a odinstalovat úlohy cron.
Než začnete s úlohami cron, je důležité zajistit, aby byl váš Linux Desktop nebo Server aktuální pomocí níže uvedených příkazů:
sudo apt aktualizace sudo apt aktualizace
Pokud ve svém systému nemáte nainstalovaný balíček cron, nainstalujte jej pomocí následujícího příkazu:
sudo apt-get install cron
Jak upravit soubor crontab?
K dokončení procesu budete muset nakonfigurovat úlohu cron. Vlastníkem se automaticky stane uživatel přihlášený při vytvoření úlohy cron. To lze změnit vytvořením vlastníka úlohy, který bude mít na starosti správu úlohy cron, jak uvidíme v tomto příspěvku.
Chcete-li otevřít konfigurační soubor crontab pro aktuálně přihlášeného uživatele, proveďte následující příkaz:
crontab -e
Systém vás vyzve k výběru vhodného editoru. V našem případě zvolíme první možnost (nano editor).
Na každý řádek můžete přidat jednu naplánovanou úlohu podle svých preferencí.
Po přidání úkolů dokončete uložením souboru a ukončete. Všechny poskytnuté pokyny přečte a provede démon cron. Změny budou použity i bez restartování systému, protože úložiště se aktualizuje automaticky.
Upravte crontab pro jiného uživatele
Crontab lze upravovat pro různé uživatele pomocí příkazu v níže uvedené syntaxi:
crontab -u jiné_uživatelské jméno -e
Jak používat speciální znaky v příkazech crontab
Znaky a operátoři diktují více přizpůsobení vašeho systému, protože rozšiřují možnosti úlohy cron.
- Slash se používá k rozdělení časového řetězce na zadané kroky. Například pro spuštění zálohování každých 30 minut můžeme použít:
* / 30 * * * *
- Hvězdička (*) se používá k provedení všech hodnot, které mají být provedeny. Například:
* / 15 ***
- Pomlčka (-) se používá k určení rozsahu činností, například počtu dní. Pro
instance, spuštění kódu v 6 hodin ráno každý pracovní den, použijeme;
0 6 * * 1-5 / root / backup.sh
Tady 06 znamená 6:00 - 1-5 znamená počet dní (pondělí až pátek).
- Čárka určuje jednotlivé instance, kdy by měl být spuštěn kód:
0 4 * * 2,4 / root / záloha.sh
Výše uvedený příkaz provede váš kód skriptu v úterý a čtvrtek ve 4 hodiny ráno.
- Můžete také kombinovat různé zástupné znaky a ještě více si upravit své příkazy. Například k provedení našeho skriptu každý druhý den v 35 minutách po hodině můžeme použít následující příkaz:
35 1-23 / 2 * * * / cesta / ke / skriptu / skriptu.sh
1-23 určuje rozsah hodin, / 2 nastaví interval na každou další hodinu.
Možnosti Cron
- Seznam všech úloh cron
Možná budete chtít zobrazit seznam úloh cron ve vašem systému, aniž byste odemkli konfigurační soubor crontab. Toho lze dosáhnout spuštěním terminálu a zadáním následujícího příkazu:
crontab -l
Tento příkaz obsahuje seznam všech úloh cron ve vašem systému.
- Odstraňte všechny úlohy crontab
Chcete-li odstranit všechny příkazy crontab, můžete použít následující příkaz:
crontab -r
- Odstranit úlohu cron pro jiného uživatele.
crontab -r -u jiné-uživatelské jméno
Použijte řetězce v Crontabu
Řetězce jsou nesmírně užitečné nástroje pro vývojáře, protože se vyhýbají opakovanému psaní segmentů kódu. Naštěstí crontabs podporuje různé hodnoty řetězců. Obsahují:
@hodinově:
-stejné jako - „0 * * * *“ (Spustí se jednou za hodina)@půlnoc:
-stejné jako - „0 0 * * *“ (Spustí se jednou za den)@denně:
stejně jako půlnoc@týdně:
-stejné jako - „0 0 * * 0“ (Spustí se jednou za týden)@měsíční:
-stejné jako - „0 0 1 * *“ (Provádí se jednou za Měsíc)@každoročně:
-stejné jako - „0 0 1 1 *“ (Spustí se jednou za rok)@roční:
podobně jako @annually@ restart:
Provedeno jednou po každém restartu / restartu / spuštění.
Dobrý příklad; pokud máte záložní skript, který chcete spouštět každý den, použijte následující příkaz:
@denně / cesta / k / záložní_skript.sh
Příklady úloh cron
Zde je seznam základních úloh cron, které lze použít při zahájení:
-
- Spuštění skriptu každou minutu:
* * * * * / váš / skript / cesta.sh
- Spuštění skriptu každých 40 minut:
40 * * * * / váš / skript / cesta.sh
- Spuštění skriptu každou hodinu:
0 * * * * / váš / skript / cesta.sh
- Spuštění skriptu každou půlnoc:
0 0 * * * / váš / skript / cesta.sh
- Spuštění skriptu každých 23 minut po půlnoci, 2:00 a 4:00 každý den:
23 0-23 / 2 * * * / váš / skript / cesta.sh
- Spuštění skriptu ve 4.05 každou neděli.
5 4 * * slunce / váš / skript / cesta.sh
- Spustit skript během týdne ve 22 hodin.
0 22 * * 1-5 / váš / skript / cesta.sh
- Spustit skript 1. prosince - půlnoc.
0 0 0 12 * / váš / skript / cesta.sh
- Spustit scénář v sobotu o půlnoci.
0 0 * * 6 / váš / skript / cesta.sh
- Spuštění skriptu každou hodinu.
0 * * * * / váš / skript / cesta.sh
- Spuštění skriptu každou minutu:
S těmito základními příklady se dostanete do hlubšího pochopení sekvence a toho, jak ji lze upravit.
Omezení přístupu Cron
Vidíme, že úlohy cron mohou přijít docela vhod, zvláště když chcete automatizovat své úkoly. Může však být také riskantní, pokud systém umožňuje každému uživateli vytvořit úlohu cron. I když to nemá vliv na osobní údaje, některé úlohy cron mohou vyžadovat docela slušné množství systémových prostředků, a tím zaostávají PC. Aby se těmto scénářům vyhnul, může správce systému (uživatel root) vytvořit / etc / cron.dovolit
nebo / etc / cron.odmítnout
soubor, který obsahuje pouze uživatele, kteří mohou 'vytvořit / nevytvořit' práce cron.
The / etc / cron.dovolit
soubor obsahuje uživatele, kteří mohou vytvářet, upravovat, zobrazovat nebo odstraňovat soubory crontab. Pokud tento soubor neexistuje, mohou všichni uživatelé vytvářet a spravovat jiné úlohy cron než ty v souboru / etc / cron.odmítnout
soubor. Pokud žádný z těchto souborů není k dispozici, jsou ke spuštění příkazu crontab vyžadována oprávnění superuživatele.
Nyní, když jste zabránili uživatelům bez oprávnění root ve vytváření úloh cron, pokud již nějaké měli, můžete zvážit přidání jejich úloh cron do souboru root crontab. Ale tady je hádanka - přidáním jejich úloh cron do kořenového crontabu, nespustí to jejich úlohy cron jako root? Tady přichází důležitost pole USERNAME, o kterém jsme diskutovali výše v syntaxi příkazu cron. Například následující příkaz:
0 * * * * fosslinux / cesta / do / skript.sh
Spustí se jako uživatelská úloha „fosslinux“ cron, nikoli jako uživatel root.
Závěr
Nyní máte jasného průvodce používáním úloh Cron k automatizaci různých úkolů ve vašem systému. To by vás nemělo plést s aplikacemi Po spuštění. Pomocí výše uvedených příkladů vyzkoušejte a automatizujte jednoduché skripty. Postupem času můžete kombinovat speciální postavy a divoké karty, abyste mohli plnit mnohem všednější úkoly. Pokud právě začínáte, bylo by skvělé přečíst si náš příspěvek v tutoriálu skriptování bash s příklady, které vám pomohou vytvořit váš první skript.