GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Cron Job Format k plánování úloh v Linuxu

Cron je plánovací démon, který ke spouštění úloh používá specifický formát. Zde je návod, jak jej použít v systému Linux k automatickému provádění úloh.

Cron je jedním z nejužitečnějších nástrojů, které můžete najít a použít v jakémkoli operačním systému Linux nebo Unix. Použití cronu je oblíbený způsob pro periodicky spouštěné úlohy, jako jsou příkazy nebo skripty shellu. Tyto pravidelné úlohy jsou také známé jako Cron Jobs a jsou naplánovány tak, aby se spouštěly v určitou dobu.

Můžete například nastavit úlohu cron pro automatizaci opakujících se úloh, jako je zálohování databáze nebo dat, aktualizace systému nejnovějšími bezpečnostními záplatami, odesílání e-mailů a tak dále.

Cron je pojmenován podle řeckého slova „Chronos“, které se používá pro čas. Tato příručka poskytuje přehled o tom, jak plánovat úlohy pomocí crontab a jak k jejich spouštění používat speciální formát syntaxe cronu.

Co je soubor crontab?

Především soubor crontab je jednoduchý textový soubor obsahující seznam příkazů, které mají být spouštěny v určených časech. Upravuje se pomocí crontab příkaz. Příkazy v souboru crontab (a jejich doby běhu) kontroluje démon cron, který je spouští na pozadí systému.

Každý řádek souboru crontab je buď „aktivní“ nebo „neaktivní“. „Aktivní“ řádek je nastavení prostředí nebo položka příkazu cron. „Neaktivní“ řádek je vše, co se ignoruje, včetně komentářů.

Prázdné řádky a úvodní mezery a tabulátory jsou ignorovány. Řádky, jejichž první znak bez mezery je znak libry (# ) jsou interpretovány jako komentáře a jsou ignorovány.

Upozorňujeme, že komentáře nejsou povoleny na stejném řádku jako příkazy cron, protože budou interpretovány jako součást příkazu. Ze stejného důvodu nejsou komentáře povoleny na stejném řádku jako nastavení proměnných prostředí.

Položky formátu úlohy Cron

Každá položka v souboru crontab se skládá ze šesti polí v následujícím pořadí:

minute hour day month weekday command
Pole Možné hodnoty Syntaxe Popis
Minuta 0–59 11 * * * *  Úloha cron se spouští pokaždé, když systémové hodiny ukazují 11 v pozici minuty.
Hodina 0–23 0 1 * * * Úloha cron se spustí vždy, když systémové hodiny ukazují 1:00 (13:00 by byla kódována jako 13).
Den 0–31 0 0 19 * *  Dnem v měsíci je 19, což znamená, že se úloha spouští každých 19 den v měsíci.
Měsíc 0 =žádný a 12 =prosinec 0 0 0 7 * Číselný měsíc je 7, což určuje, že se úloha spustí pouze v červenci.
Den v týdnu 0 =neděle a 7 =neděle 0 0 * * 1 1 na aktuální pozici znamená, že úloha bude probíhat pouze v pondělí.
Příkaz Speciální Úplná sekvence příkazů k provedení. Příkazy, spustitelné soubory (jako jsou skripty) nebo kombinace jsou přijatelné.

Každé z těchto polí lze nastavit na hvězdičku (* ) , což znamená „od prvního do posledního“. Chcete-li například spouštět úlohu každou hodinu, zadejte * v poli hodin.

Povolené jsou také rozsahy čísel. Rozsahy jsou dvě čísla oddělená pomlčkou (- ). Uvedený rozsah je včetně. Například 8-11 pro položku „hodiny“ určuje spuštění v hodinách 8 , 9 , 10 a 11 .

Seznamy jsou povoleny. Seznam je sada čísel (nebo rozsahů) oddělených čárkami (, ). Zde je několik příkladů:1,2,5,9 nebo 0-4,8-12 .

Kroky jsou povoleny i za hvězdičkou , takže pokud chcete říct „každé dvě hodiny“, můžete použít */2 .

Démon cron kontroluje crontab jednou za minutu. Příkazy provádí cron, když pole minuta, hodina a měsíc odpovídá aktuálnímu času a alespoň jedno ze dvou polí dnů (den v měsíci nebo den v týdnu) odpovídá aktuálnímu dni.

Cronův speciální formát syntaxe

Úlohy Cron také nabízejí některé speciálně formátované řetězce, které lze použít místo pěti polí času a data. Jsou to v podstatě zkratky pro zadaný ekvivalentní číselný plán:

Řetězec Meaning
@reboot Spustí zadaný příkaz jednou, při spuštění .
@ročně, @ročně Oba spouštějí zadanou úlohu každý rok 1. ledna ve 12:00 hodin. To je ekvivalentní zadání „0 0 1 1 *“ v souboru crontab.
@měsíční Spustí úlohu jednou měsíčně , dne 1. ve 12:00 hodin. Ve standardní syntaxi cronu je to ekvivalentní „0 0 1 * *“
@weekly Spustí úlohu jednou týdně v neděli ve 12:00. Ve standardní syntaxi cronu je to ekvivalentní „0 0 * * 0“
@denně, @půlnoc Oba spouštějí cronjob každý den ve 12:00. To je ekvivalentní zadání „0 0 * * *“ v souboru crontab.
@hourly Spustí úlohu v horní části každou hodinu . Ve standardní syntaxi cronu je to ekvivalentní „0 * * * *“

Jak používat příkaz crontab

crontab příkaz vytvoří soubor crontab obsahující příkazy a instrukce pomocí specifického formátu úlohy cron, kterou má démon cron spustit. Můžete použít crontab příkaz s následujícími možnostmi:

Příkaz Popis
crontab -e Upravit váš soubor crontab nebo jej vytvořte, pokud ještě neexistuje.
crontab -l Zobrazení váš soubor crontab.
crontab -r Odstranit váš soubor crontab.
crontab -u user Ve spojení s dalšími možnostmi vám tato možnost umožňuje upravit nebo zobrazit soubor crontab uživatele. Tuto možnost mohou používat pouze správci.

Chcete-li například upravit nebo vytvořit svůj vlastní soubor crontab, zadejte do příkazového řádku následující příkaz:

crontab -e

Po změně souboru crontab není potřeba restartovat cron. Cron prozkoumá čas modifikace na všech crontabech a znovu načte ty, které se změnily.

Jak upravit soubor crontab, který patří jinému uživateli

Chcete-li upravit soubor crontab, který patří uživateli root nebo jinému uživateli, musíte se stát root. K úpravě souboru crontab se samozřejmě nemusíte stát rootem.

crontab -u [username] -e

Jak odebrat soubor crontab

Většinu času nebudete chtít odstranit soubor crontab. Možná však budete chtít odstranit některé řádky ze souboru crontab.

Chcete-li odebrat soubor crontab vašeho uživatele, spusťte následující příkaz:

crontab -r

Příklady úloh Cron

Příkaz Cron Job
* * * * * /root/script.sh Spouštějte Cron Job každou minutu.
0 * * * * /root/script .sh Spouštět Cron Job každou hodinu.
0 0 * * * /root/script .sh Spouštějte Cron Job každý den o půlnoci.
0 2 * * * /root/script .sh Spouštějte Cron Job každý den ve 2:00.
0 0 15 * * /root/script .sh Spouštějte Cron Job každého 15. dne v měsíci o půlnoci.
0 0 0 12 * /root/script .sh Spusťte Cron Job 1. prosince o půlnoci.
0 0 * * 6 /root/script .sh Spusťte Cron Job v sobotu o půlnoci.
0 15 * * 1-5 /root/script.sh Spouštějte Cron Job v 15:00 každý den od pondělí do pátku.
*/5 * * * * /root/script.sh Spouštět Cron Job každých 5 minut.
0 8-16 * * * /root/script.sh Spouštějte Cron Job každý den, každou hodinu, každou hodinu, od 8:00 do 16:00.
0 4 * * 2,4 /root/script.sh Spusťte Cron Job v úterý a čtvrtek ve 4:00.
@reboot /root/script.sh Spusťte Cron Job při spuštění systému.

Závěr

Nyní dobře rozumíte tomu, jak používat formát úlohy cron k plánování úloh v Linuxu. Pomocí příkladů uvedených v této příručce vytvářejte a plánujte úlohy cronu ve vašem systému. V kombinaci se skripty shellu můžete automatizovat úlohy, které jsou normálně únavné nebo složité.

Další informace naleznete na manuálových stránkách cron a crontab zde a zde, kde jsou vynikající informace a popisy toho, jak systém cron funguje.


Linux
  1. Jak používat cron na Linuxu

  2. Jak používat Linuxový příkaz grep

  3. Jak používat příkaz historie v Linuxu

  1. Jak používám cron v Linuxu

  2. Jak používat příkaz „at“ k naplánování úkolu na daný nebo pozdější čas v Linuxu

  3. Jak používat příkaz id v Linuxu

  1. Jak používat Linux na Command

  2. Jak používat příkaz historie Linuxu

  3. Jak používat příkaz „screen“ v Linuxu