GNU/Linux >> Znalost Linux >  >> Linux

Co je Crontab a jak automatizovat úlohy v Linuxu pomocí Crontabu

Cron je nástroj, který čas od času spravuje procesy nebo démony na pozadí (například každou minutu, den, týden nebo měsíc). Cron funguje jako plánovač, například dokáže stahovat soubory z internetu nebo stahovat e-maily v pravidelných intervalech, také jej můžete použít pro složitější úkoly, jako je instalace aktualizací. Původně cron vytvořil pro UNIX Ken Thompson, ale nyní jej můžete používat ve všech systémech podobných UNIXu, dokonce i v Linuxu! UNIX má další nástroj pro plánování úloh s názvem „at“, ale cron je mnohem lepší. ​Existují dva způsoby použití cron, první je přes adresáře cron umístěné v /etc, pokud otevřete terminál a zadáte následující příkaz:$ ls /etc/cron* Získáte následující výstup:

​Nyní můžete na obrázku vidět následující adresáře:cron. denně, cron. hodinově, cron.měsíc, cron.týdně a cron.ročně. V těchto adresářích jsou uloženy skripty, které musí cron spouštět, podle názvu každého adresáře je frekvence spouštění. Například skripty uložené v cron.hourly budou spouštěny každou hodinu.

Nyní napíšu jednoduchý skript pro vytvoření zálohy adresáře a vložím jej do cronu. hodinový adresář pro spuštění skriptu každou hodinu. Jedna důležitá věc, kterou musíte zvážit, je poskytnout skriptu oprávnění ke spuštění, protože pokud to neuděláte, cron soubor nespustí.

Příklad procesu přidání skriptu do úloh cron pomocí globálních adresářů cron:

Mám adresář a chci vytvářet a automaticky zálohovat každou hodinu:

​Píšu skript pro vytvoření zálohy, použil jsem nano, ale můžete použít svůj oblíbený editor:

Testuji skript:

Skript zkopíruji do /etc/cron.hourly:

Uděluji oprávnění ke spuštění skriptu:

​Všechny skripty musí začínat řádkem #!/bin/sh, protože označuje shell, který se má použít. Použití cron prostřednictvím adresářů /etc/cron.* není příliš užitečné, takže vysvětlím druhou cestu pomocí crontab.

Pokud si pamatujete výstup, když jsem vypsal obsah /etc/cron*, uvidíte následující soubor:/etc/crontab

Úlohy můžete plánovat v souboru crontab, ale nejprve se musíte naučit následující:

​Pokud analyzujete obsah souboru crontab, můžete identifikovat 7 polí v řádcích po „# run-parts“, mám na mysli následující (první řádek po „# run-parts“):

​Pole1 Pole2 ​Pole3 Pole4 Pole5 Pole6 Pole7
01 * * * * ​kořen ​pěkné…

Prvních pět polí označuje časové hodnoty, šesté pole označuje uživatele a sedmé označuje příkaz, který má být proveden, toto poslední může být skript nebo příkaz (uname, ls, apt-get atd.). Časová pole jsou následující:

​minuta ​hodina ​den v měsíci ​měsíc ​den v týdnu
01 * * * *

​Akceptovaná hodnota pro každé pole je:

​minuta ​00–59
​hodina ​00–23
​den v měsíci ​1–31
​měsíc ​1–12
​den v týdnu ​1–7 (pondělí:1, neděle:7)

Pokud je hodnota jednoho z těchto polí „*“, znamená to všechny možné hodnoty pro odpovídající pole, například * * * * * root /root/script.sh Tato úloha bude provedena uživatelem root každou minutu, všechny dny a všechny měsíce.

Crontab používá k definování frekvenčních rozsahů příliš speciální řetězce:

@reboot ​Jednou po spuštění
​@ročně ​Jednou ročně
​@ročně ​Stejné jako @yearly
​@měsíční ​Jednou za měsíc
​@weekly ​Jednou týdně
​@daily ​Denně
​@midnight ​Stejné jako @daily
​@hourly ​Hodinově

​Jen změníte časová pole pro jeden ze speciálních řetězců a poté dokončíte zbytek, například @annually root dist-upgrade. Tento úkol by se měl provádět každý rok automaticky.

Nyní můžete přidávat úkoly do crontab, také si můžete vytvořit adresář .scripts ve svém /home a ukládat do něj své skripty, konečně můžete přidat záznam pro každý skript v souboru crontab.

Crontab může spravovat soubor úloh pro každého uživatele. Pokud má váš uživatel úlohy crontab, můžete otestovat pomocí následujícího příkazu:

​Úkoly můžete plánovat v souboru, stačí jej vytvořit:

​Když jste vytvořili soubor crontab, musíte jej načíst do cronu zadáním příkazu:

$ crontab your_crontab ​

Cron je velmi výkonný, protože poté, co načtete nový crontab, nemusíte nic dělat, to je vše, cron automaticky načítá nové úlohy a soubory crontab. Výsledkem mého crontab je skript, který každou minutu vytvoří soubor s daty:

Skript

Vygenerovaný soubor ​Další možnosti pro crontab jsou následující:

Cron je nejvýkonnější plánovač úloh, který znám, a je vynikající, protože není jen pro Linux, ale pro všechny systémy podobné UNIXu. Pokud spravujete server, pravděpodobně budete milovat cron, i když jste běžný uživatel, který se vám bude líbit, s cronem si můžete naplánovat vše. Pokud se chcete o cronu dozvědět více, měli byste vidět manuálové stránky:

$ man cron
$ man crontab 

Linux
  1. Plánování úloh pomocí linuxového příkazu cron

  2. Co je Podman a jak nainstalovat Podman v Linuxu

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

  1. Jak používat cron na Linuxu

  2. Co je příkaz Chown v Linuxu a jak jej používat

  3. Flatpak na Linuxu:Co to je a jak s ním instalovat aplikace

  1. Plánování systémových úloh pomocí Cronu na Linuxu

  2. Co je FirewallD a jak jej implementovat v systému Linux

  3. Co je NFS a jak jej nainstalovat na Linux