crontab

Cron Jobs Complete Beginners Tutorial

Cron Jobs Complete Beginners Tutorial
Cron je nejužitečnější nástroj v operačním systému Linux nebo UNIX, který umožňuje spouštět příkazy nebo skripty v daném rozvrhu bez jakéhokoli zásahu uživatele. Naplánované příkazy a skripty jsou také pojmenovány jako úlohy cron. Většinou se používá k automatizaci opakujících se úloh, jako je spouštění naplánovaných záloh, čištění dočasných souborů, údržba systému a různé další opakující se úlohy. Je to podobné jako plánovač úloh v operačním systému Windows.

V tomto tutoriálu vám poskytneme základní představení všeho, co potřebujete k pochopení pro plánování úlohy s cron. To zahrnuje základní syntaxi cronu, úpravy souboru crontab, naplánování úlohy s cron s několika příklady, zobrazení úlohy cron atd.

Základy Cron Job

Pojďme pochopit některé základy úlohy cron.

Co je Crond?

Crond je démon v systému Linux, který běží na pozadí a každou minutu kontroluje, zda je v daném čase naplánována nějaká úloha. Pokud existuje, provádí tuto práci, jinak zůstane neaktivní.

Syntaxe úlohy Cron

Syntaxe úlohy cron je následující:

* * * * * příkaz / skript

Zleva:

Chcete-li v poli zadat více hodnot, použijte následující operátorské symboly:

  1. Hvězdička (*): Chcete-li zadat všechny možné hodnoty pro pole
  2. Pomlčka (-): Na supřesněte řadu hodnot
  3. Čárka (,): Chcete-li zadat seznam hodnot
  4. Oddělovač (/): Určení hodnoty kroku

Úpravy souboru Crontab

Crontab je soubor, který obsahuje naplánované úlohy v konkrétní syntaxi. Existují dva typy souborů crontab; jeden pro úlohy cron specifické pro systém a druhý pro úlohy cron specifické pro uživatele.

Úlohy systému cron

Cronové úlohy systému jsou umístěny v / etc / crontab soubor a / etc / cron.d adresář a jsou procházeny / etc / cron.hodinově, / etc / cron.denně, / etc / cron.týdně a / etc / cron.měsíční. K těmto souborům má přístup pouze správce systému.

Správce systému může definovat úlohu cron pomocí následujícího příkazu:

$ nano / etc / crontab

Zde je syntaxe úlohy v / etc / crontab soubor:

# min hr dayofmonth měsíc dayofweek příkaz uživatelského jména
* * * * * user1 ifconfig

Cron úlohy specifické pro uživatele

Uživatelské úlohy cron jsou umístěny v /var / cívka / cron / crontabs adresář. Ačkoli můžete tyto úlohy upravovat ručně, doporučuje se tyto úlohy upravovat pomocí příkazu crontab -e.

Standardní uživatel může definovat úlohu cron pomocí následujícího příkazu:

$ crontab -e

Pokud jste například přihlášeni jako „testovací“ uživatel, spuštěním příkazu crontab -e upravíte soubor crontab pro „testovacího“ uživatele. Podobně, pokud jste přihlášeni jako uživatel root, příkaz crontab -e upraví soubor crontab pro uživatele root.

Zadejte následující příkaz v Terminálu a upravte soubor crontab pro jiného uživatele:

$ sudo crontab -u -E

Pokud jste například přihlášeni jako uživatel „test1“ a chcete upravit soubor crontab pro uživatele „test2“, bude příkaz:

$ sudo crontab -u test2 -e

Zde je syntaxe úlohy cron, kterou lze přidat do souboru crontab:

# m h dayofmonth měsíc dayofweek příkaz
* * * * * ifconfig

U úloh specifických pro uživatele vidíte, že není zadáno žádné „uživatelské jméno“.

Příkazy Crontab

Příkaz crontab se používá k úpravám, výpisu a odebrání úloh cron:

  • crontab -e Úpravy souboru crontab aktuálního uživatele
  • crontab -l Chcete-li zobrazit obsah souboru crontab
  • crontab -u [uživatelské jméno] Úpravy souboru crontab jiného uživatele
  • crontab -r Odebrat soubor crontab aktuálního uživatele
  • crontab -i Chcete-li zobrazit výzvu před odebráním souboru crontab aktuálního uživatele

Plánování úlohy s Cronem

S Cronem můžete spustit úlohu v konkrétní čas, datum a intervaly s minimální jednotkou v minutách, tj.E., můžete spustit práci každou minutu.

Chcete-li naplánovat úlohu pomocí cron, otevřete soubor crontab pomocí metody popsané v předchozí části. Po otevření souboru crontab budete vyzváni k výběru textového editoru. Zadejte číslo a vyberte preferovaný textový editor. Přejděte dolů do dolní části souboru a přidejte úlohy ve výše popsané syntaxi. Každý řádek v souboru určuje jeden příkaz. Prvních pět položek v řádku určuje naplánovaný čas a poslední položka určuje, který příkaz nebo skript se má spustit.

Příklad:

Následující řádek v souboru crontab naplánuje, aby úloha cron spouštěla ​​příkaz / skript každou 30. minutu za 5 hodin každý den v týdnu od pondělí do soboty.

* / 30 5 * * 1-6 příkaz / skript

Minut

V tomto poli určíme minuty, kdy chceme provést příkaz. Je specifikováno od 0 do 59. * V tomto poli znamená spuštění úlohy každou minutu. Ve výše uvedeném řádku crontab říká * / 30 úloze cron, aby každých 30 minut spouštěla ​​zadaný příkaz / skript.

Hodin

V tomto poli určíme hodiny, kdy chceme příkaz provést. Je specifikováno od 0 do 23. * V tomto poli znamená spuštění úlohy každou hodinu. Ve výše uvedeném řádku crontab hodnota 5 říká úloze cron, aby každých pět hodin spouštěla ​​zadaný příkaz / skript.

Den v měsíci

V tomto poli určíme konkrétní dny v měsících, kdy chceme příkaz provést. Je specifikováno od 1 do 31. * V tomto poli znamená každý den. Ve výše uvedeném řádku crontab * * říká úloze cron, aby každý den spouštěla ​​zadaný příkaz / skript.

Měsíc roku

V tomto poli určíme konkrétní měsíce, kdy chceme příkaz provést. Je specifikováno od 1 do 12. * V tomto poli znamená každý měsíc. Ve výše uvedeném řádku crontab * * říká úloze cron, aby každý měsíc spouštěla ​​zadaný příkaz / skript.

Den v týdnu

V tomto poli určíme konkrétní dny v týdnu, kdy chceme příkaz provést. Je zadáno od 0 do 6 od neděle do soboty (0 pro neděli a 6 pro sobotu). * V tomto poli znamená každý den v týdnu. Ve výše uvedeném řádku crontab * * říká úloze cron, aby spouštěla ​​zadaný příkaz / skript každý den v týdnu.

Příklady úloh Cron

Zde je několik příkladů úloh cron:

Spusťte úlohu cron každých 15 minut

Chcete-li naplánovat spuštění úlohy cron každých 15 minut, přidejte do souboru crontab následující řádek:

* / 15 * * * * příkaz / skript

Spusťte úlohu cron každý den v 5 hodin ráno

Chcete-li naplánovat spuštění úlohy cron každý den v 5 hodin ráno, přidejte do souboru crontab následující řádek:

0 5 * * * příkaz / skript

Spusťte úlohu cron každý den v 17 hodin

Chcete-li naplánovat spuštění úlohy cron každý den v 17 hodin, přidejte do souboru crontab následující řádek:

0 17 * * * příkaz / skript

První den každého měsíce spusťte úlohu cron v 9:00

Chcete-li naplánovat spuštění úlohy cron na první den každého měsíce v 9:00, přidejte do souboru crontab následující řádek:

0 9 1 * * příkaz / skript

Spusťte úlohu cron každou hodinu každou 15. března

Chcete-li naplánovat úlohu cron každou hodinu na 15. března, přidejte do souboru crontab následující řádek:

0 * 15 3 * příkaz / skript

Spusťte úlohu cron každých 5 hodin

Chcete-li naplánovat úlohu cron každých 5 hodin, přidejte do souboru crontab následující řádek:

0 * / 5 * * * příkaz / skript

Spusťte úlohu cron každých 15 minut

Chcete-li naplánovat spuštění úlohy cron každých 15 minut, přidejte do souboru crontab následující řádek:

* / 15 * * * *

Používání řetězců

K definici úlohy lze také použít následující řetězce:

  1. @hodinově: Chcete-li vykonat úlohu jednou za hodinu, tj.E., "0 * * * *"
  2. @půlnoc: Chcete-li vykonat práci jednou denně, tj.E., "0 0 * * *"
  3. @denně: stejně jako půlnoc
  4. @týdně: Chcete-li vykonat úlohu jednou za týden, tj.E., "0 0 * * 0"
  5. @měsíční: Chcete-li vykonat práci jednou za měsíc, tj.E., "0 0 1 * *"
  6. @každoročně: Chcete-li vykonat práci jednou za rok, tj.E., "0 0 1 1 *"
  7. @roční: stejné jako @ ročně
  8. @ restart: Provést úlohu jednou při každém spuštění

Například pro spuštění skriptu nebo příkazu každý týden by položka v souboru crontab byla:

@týdenní příkaz / skript

Předdefinované Cron adresáře

V systému Linux existují některé předdefinované adresáře cron, kde se automaticky spouštějí uložené skripty. Pokud pod tyto adresáře umístíme jakýkoli skript, bude automaticky spuštěn v nakonfigurovaném čase.

  • / etc / cron.denně
  • / etc / cron.hodinově
  • / etc / cron.měsíční
  • / etc / cron.týdně

Chcete-li například spustit skript jednou za měsíc, budete jej muset umístit do souboru / etc / cron.měsíční.

Zobrazit úlohy Cron

Zobrazit úlohy pro aktuálního uživatele

Pomocí následujícího příkazu můžete zobrazit všechny naplánované úlohy cron pro aktuálního uživatele:

$ crontab -l

Zobrazit úlohy pro uživatele root

Chcete-li zobrazit všechny naplánované úlohy uživatele root, zadejte v Terminálu následující příkaz:

$ cat / etc / crontab

Budete se muset přihlásit jako uživatel root nebo spustit příkaz jako sudo.

Zobrazit úlohy pro ostatní uživatele

Chcete-li zobrazit všechny naplánované úlohy konkrétního uživatele, zadejte v Terminálu následující příkaz, který nahradí se skutečným uživatelským jménem:

$ sudo crontab -u -l

Ke spuštění tohoto příkazu budete potřebovat oprávnění sudo.

Zobrazit hodinové úlohy cron

Chcete-li zobrazit všechny úlohy cron, které jsou nakonfigurovány tak, aby se spouštěly každou hodinu, zadejte v Terminálu následující příkaz:

$ ls -la / etc / cron.hodinově

Zobrazit denní úlohy cron

Chcete-li zobrazit všechny úlohy cron, které jsou nakonfigurovány pro každodenní spuštění, zadejte v Terminálu následující příkaz:

$ ls -la / etc / cron.denně/

Zobrazit týdenní úlohy cron

Chcete-li zobrazit všechny úlohy cron, které jsou nakonfigurovány tak, aby se spouštěly každý týden, zadejte v Terminálu následující příkaz:

$ ls -la / etc / cron.týdně/

Zobrazit měsíční úlohy cron

Chcete-li zobrazit všechny úlohy cron, které jsou nakonfigurovány pro měsíční spuštění, zadejte v Terminálu následující příkaz:

$ ls -la / etc / cron.měsíční/

Zálohujte všechny úlohy Cron

Doporučuje se uchovat zálohu všech úloh cron v souboru, abyste se mohli v případě odstranění obnovit. Chcete-li provést zálohu všech aktuálních úloh, použijte operátor přesměrování k přesměrování výstupu crontab -l do souboru.

$ crontab -l> backup_cron.txt

Odebrání všech naplánovaných úloh Cron

Chcete-li odebrat všechny naplánované úlohy cron, použijte parametr -r následujícím způsobem:

$ crontab -r

Cron oprávnění

Můžeme omezit přístup k příkazu crontab prostřednictvím dvou souborů: / etc / cron.povolit a / etc / cron.odmítnout.

  • / etc / cron.dovolit - Přidejte uživatele (jednoho na řádek), kterým chcete povolit přístup k příkazům crontab. Tito uživatelé mohou spouštět úlohy plánu.
  • / etc / cron.odmítnout - Přidejte uživatele (jednoho na řádek), kterým chcete odepřít přístup k příkazům crontab. Tito uživatelé nemohou spouštět naplánované úlohy.

Generátory syntaxe Crontab

Existují některé webové stránky, které umožňují generování syntaxe pro crontabs. Tyto weby usnadňují generování výrazu crontab bez nutnosti pamatovat si syntaxi. I když pro generátory syntaxe jsou k dispozici různé webové stránky, například crontabgenerator.com, generátor crontabu.org a cronmaker.com. Ten, který většinou preferuji a považuji za užitečný, je crontab.guru. Na základě vstupu uživatele vygeneruje výraz crontab, který můžete zkopírovat a vložit do souboru crontab.

Závěr

V tomto tutoriálu jsme vysvětlili základy úloh cron, jeho syntaxi a jak je nastavit. Také jsme diskutovali o tom, jak zobrazit úlohy cron, vytvořit zálohu a odstranit je, pokud již nejsou potřeba.

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...