GNU/Linux >> Znalost Linux >  >> Linux

Jak naplánovat úlohy s Cronem v Linuxu

Zjistíte, že existuje mnoho úkolů, které je třeba na vašem systému Linux pravidelně provádět. Můžete například potřebovat aktualizovat databázi nebo zálohovat data uživatelů v adresáři /home/. I když byste tyto úlohy mohli spouštět ručně, bylo by efektivnější (a spolehlivější), kdybyste systém Linux nakonfigurovali tak, aby je spouštěl automaticky za vás.

Jednou z možností, jak toho dosáhnout, je použít cron. Démon cron (/usr/sbin/cron) vám umožňuje naplánovat úlohy, které pro vás budou prováděny podle pravidelného plánu.

Syntaxe souboru crontab

Démon cron je nainstalován a aktivován ve výchozím nastavení na systémech Linux. Jednou za minutu zkontroluje, zda byly pro aktuální čas definovány nějaké úlohy. Démon cron používá soubor nazvaný crontab který obsahuje seznam úloh a kdy mají být spuštěny. Soubor crontab existuje pro celý systém Linux. Každý uživatel v systému může také definovat svůj vlastní soubor crontab.

Každý řádek v souboru crontab definuje jednu úlohu cron. Prvních pět polí (oddělených mezerami – mezerami nebo tabulátory) definuje, kdy
se má úloha cron spustit. Používají následující syntaxi:

Číslo pole Štítek pole Rozsah
1 Minuty 0–59
2 Otevírací doba 0–23
3 Den v měsíci 1–31
4 Měsíc 1–12
5 Den v týdnu 0–7

V uživatelském souboru crontab určují následující pole (pole šest a výše) příkaz a jeho volbu, pokud nějaká existuje. V systémovém souboru crontab šesté pole určuje uživatele, který má být použit k provedení příkazu ve zbývajících polích (pole sedm a výše).

Démon cron může spouštět jakýkoli příkaz nebo skript shellu. Při spuštění příkazu nebo shellového skriptu však není k dispozici žádná interakce uživatele.

Níže jsou uvedeny pokyny pro konfiguraci těchto polí:

  • Pokud chcete, aby se úloha spouštěla ​​každou minutu, hodinu, den nebo měsíc, zadejte do příslušného pole hvězdičku (*).
  • Do pole v seznamu můžete zahrnout několik položek oddělených čárkami.
  • Můžete zadat rozsah s počáteční a koncovou hodnotou oddělenými pomlčkou.
  • Časové kroky můžete nakonfigurovat pomocí /n (kde n představuje velikost kroku).
  • Měsíce a dny v týdnu můžete určit pomocí prvních tří písmen jejich názvů (například PO, ÚT, JAN, ÚNO). V písmenech se nerozlišují velká a malá písmena. Když však používáte písmena, nemůžete používat rozsahy ani seznamy.
  • Čísla představující dny v týdnu začínají na 0 pro neděli a probíhají postupně celým týdnem, přičemž 7 opět představuje neděli. Například 3 je středa a 6 je sobota.

Definování uživatelských úloh

Uživatelé vytvářejí a udržují své vlastní soubory crontab pomocí příkazu crontab. S příkazem crontab lze použít následující možnosti:

Možnost Popis
crontab -e Vytváří nebo upravuje úlohy. Používá se editor vi.
soubor crontab Nahradí jakýkoli existující soubor crontab pro aktuálního uživatele zadaným souborem za předpokladu, že soubor obsahuje seznam úloh se správnou syntaxí.
crontab -l Zobrazuje aktuální úlohy.
crontab -r Smaže všechny úlohy.

Předpokládejme například, že chcete definovat úlohu cron, která zkopíruje obsah domovského adresáře vašeho uživatele na externí jednotku USB připojenou v /media/USB každou noc v 17:05. Budete muset provést následující:

1. Otevřete relaci terminálu.

2. Do příkazového řádku zadejte „crontab -e“.

# crontab -e

Pokud je to poprvé, co definujete úlohu cron, vytvoří se pro vašeho uživatele prázdný soubor crontab.

3. Stiskněte klávesu I a zadejte následující:

5 17 * * * cp ~/* /media/USB

4. Stiskněte Esc a zadejte „:wq!“.

5. Můžete určit, kteří uživatelé mohou vytvářet úlohy cron a kteří ne, vytvořením následujících dvou souborů:

  1. /etc/cron.allow :Uživatelé uvedení v tomto souboru mohou vytvářet úlohy cron.
  2. /etc/cron.deny :Uživatelé, kteří nejsou uvedeni v tomto souboru, mohou vytvářet úlohy cron.

Pokud soubor /etc/cron.allow existuje, je to jediný hodnocený soubor; /etc/cron.deny bude v této situaci ignorován. Pokud žádný z těchto souborů neexistuje, může definovat uživatelské úlohy cron pouze uživatel root.


Linux
  1. Jak používat cron na Linuxu

  2. Jak naplánovat úlohy Cron pomocí Crontab

  3. Obnovte úlohy cron omylem odstraněné pomocí crontab -r

  1. Jak automatizovat úlohy v Linuxu pomocí Crontab

  2. Jak naplánovat úlohy pomocí příkazu „at“ v systému Linux

  3. Jak napsat soubor s C v Linuxu?

  1. Plánování úloh Cron pomocí Crontab

  2. Jak vypsat Cron Jobs v Linuxu

  3. Jak používat Linux rm Command s příklady