Crontab Manual – Plánování úloh v Linuxu

Provádění stále stejných úkolů, ať už na denní, týdenní nebo měsíční bázi, je úkol, který se postupem času unavuje a degeneruje v závislosti na jeho složitosti, ve které ho necháme stranou. Řešením tohoto problému je co nejvíce automatizovat. Stejně jako Windows nám umožňuje automatizovat určité úkoly, Linux tuto možnost nám také nabízí prostřednictvím Crontab, ale ne výhradně.

Pokud chceme automatizovat provoz Linuxu, ať už jde o vytvoření záložní kopie, generování reportů, úpravu konfigurace nebo cokoliv jiného, ​​řešením je použít Crontab v kombinaci s Cronem, protože na rozdíl od Windows potřebujeme dva aplikace minimum.

Manuál Crontab

Co je Crontab?

Crontab je textový soubor, kde jsou automatizace vytvářeny na základě řady parametrů, tedy textového souboru četl Cron . Obě aplikace jsou nativně dostupné ve většině nejběžnějších linuxových distribucí, takže pro jejich používání není nutné instalovat na náš počítač žádné úložiště.

Crontab nám nabízí řadu skriptů, jeden na řádek, které nám umožňují přizpůsobit přesný čas, ve kterém chceme provádět jeden nebo více úkolů a jejich opakování v průběhu času. Ve skutečnosti jeho název pochází z řeckého slova Chronos , což znamená čas. Každý skript obsahuje informaci o přesném datu, kdy by měl být proveden, které datum je označeno řadou čísel. Pro ukázku tlačítko. Následující skript spustí nfsfind každou neděli v 5:30 ráno

30 5 * * 0 /usr/lib/fs/nfs/nfsfind

První dvě čísla představují hodinu, ve které bude příkaz proveden, první číslo je minuta a druhé hodiny. Časový formát používaný Crontabem je 24 hodin, takže pokud chceme úkol provést v 5 hodin odpoledne, bylo by to číslo 17. Hvězdičky představují všechny hodnoty, zatímco číslo 0 odpovídá nedělím.

Nepleťte si Cron s Crontabem

Zatímco Crontab nám umožňuje provádět náš systém automatizace , tyto se spouštějí, i když ne výhradně, pomocí aplikace Cron, což je aplikace, která běží na pozadí a která provádí všechny úkoly, které jsme dříve nakonfigurovali v Crontab. Tato aplikace k jejich provádění využívá náš systémový čas, takže pokud používáme virtuální počítač, je důležité, aby čas hostujícího počítače i čas našeho počítače byl vždy stejný, protože jinak nebude naprogramovaný čas opravit.

Cron čte obsah souboru Crontab každou minutu, takže jej můžeme kdykoli upravit a provést úkoly, které chceme provést ve stejné relaci, aniž bychom museli aplikaci nutit znovu číst jeho obsah, aby nalezla nové skripty ke spuštění.

Ne všichni uživatelé mají možnost vytvářet soubory Crontab pro automatizaci systémových úloh. Správce systému má možnost povolit nebo zakázat tuto možnost prostřednictvím souboru cron.allow nebo cron.den, respektive souborů nalezených v /etc/cron.do /etc/ v závislosti na verzi distribuce Linuxu, kterou máme. nainstalovaný na našem počítači.

Jak automatizovat úlohy v Linuxu

Jak jsme uvedli výše, skripty Crontab začínají datem, kdy chceme, aby byly provedeny, následovaným příkazem. Syntaxe Crontab je následující.

Správa plánu

minuto hora día-del-mes mes día-de-la-semana ruta-comandos

  • Minuta, může to být od 0 do 59
  • Čas, jak jsme zmínili, Crontab používá 24hodinový čas, takže rozsah čísel je od 0 do 23.
  • Den v měsíci, v tomto parametru není mnoho tajemství, protože se pohybuje od 1 do 31.
  • Měsíc, od 1 do 12
    • Leden 1
    • únor 2
    • Březen 3
    • dubna 4
    • může 5
    • června 6
    • července 7
    • Srpen 8
    • září 9
    • říjen 10
    • listopad 11
    • Prosince 12.
  • Den v týdnu, od 0 do 6, neděle je číslo 0, i když některé verze Crontabu umožňují také použití čísla 7. Tímto způsobem je kód pro dny v týdnu
    • 0 neděle
    • 1 pondělí
    • 2 úterý
    • 3 středa
    • 4 čtvrtek
    • 5 pátek
    • 6 sobota

Kromě toho však můžeme také použít hvězdičku (*) k určení všech možných hodnot proměnné. Pokud chceme stanovit několik hodnot, můžeme to udělat pomocí čárky (,) nebo rozsahu hodnot, které je oddělíme pomlčkou (-). Pomocí „/“ můžeme také nastavit různé kroky.

Pokud to stále není příliš jasné, ukážeme vám časové kódy, které můžeme použít k provádění úkolů periodicky v závislosti na jejich periodicitě

  • 0 * * * * Pomocí časového kódu bude skript spuštěn každou hodinu v hodinu.
  • 0 0 * * * Každý den bude skript proveden pouze jednou
  • 0 0 * * 0 Skript se spouští jednou týdně
  • 0 0 1 * * Bude prováděno jednou měsíčně
  • 0 0 1 1 * Skript bude spuštěn jednou ročně

Jakmile budeme mít jasno v tom, jak funguje plánování úloh v Crontabu, první věc, kterou uděláme, je vytvořit soubor, kde vytvoříme všechny procesy, které chceme automatizovat pomocí následujícího příkazu

crontab nombre-archivo

Pokud nechceme vytvářet nový, nebo jsme jej již vytvořili a chceme jej upravit, použijeme tento příkaz

crontab -e

Pokud chceme smazat vytvořený soubor Crontab

crontab -d

Pomocí následujícího příkazu můžeme vypsat všechny úlohy obsažené v souboru Crontab

crontab -d

Správci systému mohou omezit používání automatizace systému úpravou souborů cron.allow nebo cron.den, souborů nalezených v /etc/cron.d/ nebo /etc/, pokud jsme dříve nezměnili jejich umístění.

automatizovat úkoly

K úpravě souboru Crontab, který jsme vytvořili, použijeme textový editor obsažený ve všech distribucích Linuxu, i když jej můžeme upravovat také přímo z Crontabu přidáním proměnné -e.

nano nombrearchivo

Představíme číselný kód doplněný hvězdičkami a skript, který chceme spustit. Dále musíme dát Cron oprávnění ke spuštění, jinak se o své existenci nedozví a nikdy ji nebude moci spustit. K tomu použijeme příkaz

chmod ugo+x nombrearchivo

Zpočátku se zdá, že použití Crontabu k automatizaci úloh není vůbec snadné a připomíná to (téměř běžnou) potřebu Linuxu uchýlit se prakticky ke všemu z příkazového řádku, což omezuje více uživatelů, aby si osvojili Linux jako operační systém během dne. na dnešní bázi. .

Plánovač úloh pro Windows využívá grafické rozhraní, které není bez potřebných znalostí příliš snadné používat, nicméně je mnohem intuitivnější než to, které nabízí Linux prostřednictvím příkazové řádky.

Crontab a Cron fungující příklad

První věc, kterou musíme udělat pro automatizaci úloh v Linuxu, je vytvořit soubor, kam zahrneme všechny příkazy, které chceme, aby byly na počítači provedeny v době, kdy nakonfigurujeme. V tomto příkladu vytvoříme „testovací“ soubor, který bude zodpovědný za smazání všech souborů a prázdných složek nalezených v adresáři tmp. K tomu zadáme následující příkaz.

crontab prueba

Dále musíme zadat příkaz (nebo příkazy oddělující je středníkem „;“ bez uvozovek). V tomto příkladu použijeme Crontab k odstranění souborů ve složce tmp.

find /tmp -type f -empty -delete

Dále upravíme soubor a přidáme plán, to znamená, když chceme, aby byly provedeny úkoly, které jsme zadali do souboru.

crontab -e

Aby se mohl spouštět každý den v 10 ráno, musíme před skript přidat 0 10 * * *, přičemž řádek necháme takto

0 10 * * * find /tmp -type f -empty -delete

Pokud chceme, aby se to spustilo v jinou dobu, stačí upravit číslo 10 pro hodinu (ve 24hodinovém formátu), ve které se má spouštět. Můžeme také použít časové kódy kterou jsme si ukázali v sekci Správa programování, abychom ji nakonfigurovali. Nakonec použijeme následující příkaz, aby Cron mohl spustit soubor automatizace, který jsme vytvořili.

[code]chmod ugo+x prueba

Alternativy ke Cronu

Jak jsme zmínili v předchozích částech, Cron má na starosti provádění příkazů, které jsme dříve zadali do Crontabu. Cron je perfektní nástroj pro týmy, které jsou v provozu 24 hodin denně, i když jej můžeme také přizpůsobit našemu pracovnímu plánu, a to i v případě, že týmu odebírá zdroje při plnění úkolů. Pokud hledáme jednodušší možnosti pro Cron, ukážeme vám některé z nejlepších alternativ.

anachron

Anacron nám umožňuje kdykoli naplánovat automatizované provádění úkolů na den, týden nebo měsíc. Pokud je počítač vypnutý, při příštím spuštění počítače se provede úkol, který jsme předtím zadali do Crontabu. U Cronu platí, že pokud je počítač k určenému datu vypnutý, úloha se při zapnutí počítače neprovede. Anacron je dostupný ve většině distribucí Linuxu a můžeme jej nainstalovat do počítače pomocí následujícího příkazu.

sudo apt install anacron

Cronie

Cronie nám nabízí mnohem kompletnější zkušenosti než Cron a malou sadu aplikací (mezi nimiž je zahrnut i Anacron), se kterými můžeme velmi rychle a snadno programovat pracovní postupy prostřednictvím Crontabu. Na rozdíl od Anacronu není Cronie pro instalaci Cronie k dispozici v linuxových repozitářích, takže musíme navštívit jeho webovou stránku na GitHub stáhnout, nebo použijte následující příkaz.

wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz