crontab

Jak naplánovat úkol v Linuxu?

Jak naplánovat úkol v Linuxu?
Kdykoli používáte operační systém založený na systému UNIX, je třeba určité úkoly provádět opakovaně. Ruční spuštění je pokaždé časově náročné a celkově neefektivní. K vyřešení tohoto problému přichází systém UNIX se zabudovanými plánovači úloh. Tyto plánovače úkolů fungují jako inteligentní budík. Když se alarm spustí, operační systém spustí předdefinovanou úlohu.

V případě Linuxu přichází se dvěma základními, ale výkonnými nástroji: démon Cron (výchozí plánovač úloh) a na (vhodnější pro jednorázové plánování úloh).

V této příručce se podívejte, jak naplánovat úlohu v systému Linux.

Naplánujte úkoly v systému Linux

Cron
Démon cron je zodpovědný za běh mnoha úloh v určitých časech. Tyto úkoly se obvykle spouštějí na pozadí v naplánovaných časech. Nabízí velkou flexibilitu bez ohledu na úkol, bez ohledu na interval (hodinu, týden, měsíc, rok nebo cokoli jiného).

Cron sleduje své akce pomocí souboru crontab. Soubor crontab je skript, který obsahuje všechny informace potřebné ke spuštění všech úloh cron.

Pojďme se rychle podívat na základní použití cronu. V případě některého z následujících příkazů bude nakonfigurován pro uživatele root, pokud je spuštěn s oprávněním sudo. Pro demonstraci jsem odtud popadl ukázkový soubor crontab.

Chcete-li zobrazit seznam všech naplánovaných úloh cron pro aktuálního uživatele, spusťte následující příkaz. Vytiskne veškerý obsah souboru crontab.

$ crontab -l


Chcete seznam úloh cron pro jiného uživatele? Spusťte tento příkaz.

$ sudo crontab -u -l


Chcete-li upravit skript crontab, spusťte příkaz. Chcete-li upravit soubor crontab pro root, spusťte následující příkaz s oprávněním sudo.

$ crontab -e


Každý řádek ve skriptu crontab definuje úkol. Zde je rychlý rozpis položek crontabu.

$

Zde je seznam všech možných hodnot pro všechna tato pole. Pokud se místo číselné hodnoty použije hvězdička (*), použije se každá možná hodnota pole.

  • minuta: 0 až 59
  • hodiny: 0 až 23
  • den v měsíci: 1 až 31
  • měsíc: 1 až 12
  • den v týdnu: 0 (neděle) až 6 (sobota)

Podrobného průvodce, jak používat crontab k automatizaci úloh, najdete v článku o tom, jak nastavit úlohy cron v Linuxu. Zde je další rychlý příklad úlohy cron běžící každou minutu.

na
Zatímco cron je primární způsob plánování úloh, at nabízí možnost spustit příkaz / skript v určitém čase nebo v pevném intervalu, nezapomeňte, že at spustí cílovou úlohu jednou, zatímco cron by úlohu znovu spustil v daném intervalu. Nástroj at je ve srovnání s cronem méně populární, ale jeho použití je relativně snazší. Můžete použít určitá klíčová slova, například půlnoc nebo čas na čaj (4 P.M.).

Tento nástroj není ve většině distribucí Linuxu předinstalován. Chcete-li nainstalovat na, spusťte příslušný příkaz podle vaší distribuce.

Pro Debian / Ubuntu a deriváty.

$ Sudo apt install -y na


Pro CentOS / RHEL a deriváty.

$ yum instalace na

Pro Arch Linux a jeho deriváty.

$ sudo Pacman -S ve společnosti

Pro Fedoru a deriváty.

$ sudo dnf nainstalovat na

Po dokončení instalace povolte démona at.

$ sudo systemctl enable --now atd.servis


Způsob práce je trochu jiný. Kdykoli zavoláte na, musíte definovat interval spuštění požadované úlohy. Chcete-li například po hodině spustit určitý příkaz, použijte následující příkaz.

$ nyní + 1 hodina


Spuštění požadovaného úkolu v 6 P.M., do šesti dnů od teď spusťte následující příkaz.

$ v 18:00 + 6 dní


Když spustíte příkaz, aplikace at požádá o spuštění příkazů. Chcete-li výzvu ukončit, stiskněte „Ctrl + d.„At představí souhrn naplánovaných úkolů a čas jejich provedení.

Toto je jen základní použití. Důslednějším způsobem použití at by mohlo být provedení bash skriptu obsahujícího všechny úkoly, které je třeba provést. Máte zájem dozvědět se více o skriptování bash? Šek

$ v 18:00 + 6 dní -ff