GNU/Linux >> Znalost Linux >  >> Linux

Jak automatizovat úlohy v Linuxu pomocí Crontab

Někdy můžete mít úkoly, které je třeba provádět pravidelně nebo v určitých předem definovaných intervalech. Mezi takové úkoly patří zálohování databází, aktualizace systému, provádění pravidelných restartů a tak dále. Takové úlohy se v linuxu označují jakocron jobs (Crontab). Úlohy cron se používají k automatizaci úloh které se hodí a pomáhají zjednodušit provádění opakujících se a někdy světských úkolů. Cron je démon, který vám umožňuje naplánovat tyto úlohy, které se pak provádějí v určených intervalech. V tomto tutoriálu se naučíte plánovat úlohy pomocí úloh cron.

Soubor Crontab

Soubor crontab, známý také jako cron tabulka , je jednoduchý textový soubor, který obsahuje pravidla nebo příkazy určující časový interval provádění úlohy. Existují dvě kategorie souborů crontab:

1)  Soubor crontab pro celý systém

Obvykle je používají služby Linuxu a kritické aplikace vyžadující oprávnění root. Systémový soubor crontab se nachází na adrese /etc/crontab a může k nim přistupovat a upravovat je pouze uživatel root. Obvykle se používá pro konfiguraci démonů celého systému. Soubor crontab vypadá takto:

2) Soubory crontab vytvořené uživatelem

Uživatelé Linuxu mohou také vytvářet své vlastní úlohy cron pomocí příkazu crontab. Vytvořené úlohy cron poběží jako uživatel, který je vytvořil.

Všechny úlohy cron jsou uloženy v /var/spool/cron (pro distribuce RHEL a CentOS) a /var/spool/cron/crontabs (pro distribuce Debian a Ubuntu), úlohy cron jsou uvedeny pomocí uživatelského jména uživatele, který vytvořil úloha cron

démon cron běží tiše na pozadí a kontroluje /etc/crontab soubor a /var/spool/cron a /etc/cron.d*/ adresáře

crontab příkaz se používá pro úpravu souborů cron. Pojďme se podívat na anatomii souboru crontab.

Anatomie souboru crontab

Než půjdeme dále, je důležité, abychom nejprve prozkoumali, jak soubor crontab vypadá. Základní syntaxe pro soubor crontab obsahuje 5 sloupců reprezentovaných hvězdičkami následovanými příkazem, který se má provést.

*    *    *    *    *    příkaz

Tento formát lze také reprezentovat následovně:

Příkaz m h d moy dow

NEBO

m h d moy dow /cesta/k/skriptu

Pojďme si to vysvětlit u každého záznamu

  • m :Toto představuje minuty. Zadává se od 0 do 59
  • h :Označuje hodinu zadanou od 0 do 23
  • d :  Představuje den v měsíci. Specifikováno mezi 1 až 31`
  • moy :Toto je měsíc v roce. Udává se mezi 1 až 12
  • doy :  Toto je den v týdnu. Zadává se mezi 0 a 6, kde 0 =neděle
  • Příkaz :Toto je příkaz, který se má provést, např. příkaz pro zálohování, restartování a kopírování

Správa úloh cron

Když jsme se podívali na architekturu souboru crontab, podívejme se, jak můžete vytvářet, upravovat a odstraňovat úlohy cron

Vytváření úloh cron

Chcete-li vytvořit nebo upravit úlohu cron jako uživatel root, spusťte příkaz

# crontab -e

Chcete-li vytvořit úlohu cron nebo naplánovat úlohu jako jiný uživatel, použijte syntaxi

# crontab -u uživatelské jméno -e

Chcete-li například spustit úlohu cron jako uživatel Pradeep, zadejte příkaz:

# crontab -u Pradeep -e

Pokud neexistuje žádný již existující soubor crontab, získáte prázdný textový dokument. Pokud soubor crontab existoval, možnost  -e umožňuje  soubor upravit,

Výpis souborů crontab

Chcete-li zobrazit úlohy cronu, které byly vytvořeny, jednoduše předejte volbu -l, jak je uvedeno

# crontab -l

Odstranění  souboru crontab

Chcete-li odstranit soubor cron, jednoduše spusťte crontab -e a odstraňte nebo řádek cron úlohy, kterou chcete, a soubor uložte.

Chcete-li odebrat všechny úlohy cron, spusťte příkaz:

# crontab -r

To znamená, že se podívejme na různé způsoby, jak můžete naplánovat úkoly

Příklady Crontab v Plánování úloh.

Všechny úlohy cronu mají záhlaví Shebang, jak je znázorněno

#!/bin/bash

To označuje shell, který používáte, což je v tomto případě bash shell.

Dále určete interval, na který chcete naplánovat úlohy, pomocí položek úlohy cron, které jsme zadali dříve.

Chcete-li restartovat systém denně ve 12:30, použijte syntaxi:

30  12 *  *  * /sbin/reboot

Chcete-li naplánovat restart na 4:00, použijte syntaxi:

0  4  *  *  *  /sbin/reboot

POZNÁMKA: Hvězdička * se používá ke spárování všech záznamů

Chcete-li skript spustit dvakrát denně, například ve 4:00 a 16:00, použijte syntaxi.

0  4,16  *  *  *  /cesta/k/skriptu

Chcete-li naplánovat spuštění úlohy cron každý pátek v 17:00 , použijte syntaxi:

0  17  *  *  Pá  /cesta/k/skriptu

NEBO

0 17  *  *  *  5  /cesta/k/skriptu

Pokud chcete spouštět úlohu cron každých 30 minut, použijte:

*/30  *  *  *  * /cesta/k/skriptu

Chcete-li naplánovat spouštění cronu po každých 5 hodinách, spusťte

*  */5  *  *  *  /cesta/k/skriptu

Chcete-li spustit skript ve vybrané dny, například ve středu a pátek v 18:00, spusťte:

0  18  *  *  st,pá  /cesta/k/skriptu

Chcete-li naplánovat více úloh pro použití jedné úlohy cron, oddělte úlohy středníkem, například:

*  *  *  *  *  /cesta/k/skriptu1; /cesta/k/script2

Použití speciálních řetězců pro úsporu času při psaní úloh cron

Některé z úloh cron lze snadno konfigurovat pomocí speciálních řetězců, které odpovídají určitým časovým intervalům. Například,

1)  @hodinové časové razítko odpovídá  0 * * * *

Provede úlohu v první minutě každé hodiny.

@hourly /path/to/script

2) @denní časové razítko je ekvivalentní  0 0 * * *

Provádí úkol v první minutě každého dne (o půlnoci). Je to užitečné při provádění každodenních úloh.

@daily /cesta/k/skriptu

3) @weekly   časové razítko je ekvivalentní  0 0 1 * po

Provádí úlohu cron v první minutě každého týdne, přičemž týden, přičemž týden začíná v pondělí.

@weekly /path/to/script

3) @monthly je podobné záznamu 0 0 1 * *

Provede úkol v první minutě prvního dne v měsíci.

@monthly /path/to/script

4) @ročně odpovídá 0 0 1 1 *

Provádí úkol v první minutě každého roku a je užitečný při odesílání novoročních přání 🙂

@monthly /path/to/script

Omezení Crontab

Jako uživatel Linuxu můžete ovládat, kdo má právo používat příkaz crontab. To je možné pomocí /etc/cron.deny a /etc/cron.allow soubor. Ve výchozím nastavení existuje pouze soubor /etc/cron.deny a neobsahuje žádné položky. Chcete-li uživateli omezit používání nástroje crontab, jednoduše do souboru přidejte uživatelské jméno uživatele. Když je do tohoto souboru přidán uživatel a uživatel se pokusí spustit příkaz crontab, objeví se níže uvedená chyba.

Chcete-li uživateli umožnit pokračovat v používání nástroje crontab,  jednoduše odeberte uživatelské jméno ze souboru /etc/cron.deny.

Pokud je přítomen soubor /etc/cron.allow, pak pouze uživatelé uvedení v souboru mají přístup k nástroji crontab a mohou jej používat.

Pokud žádný soubor neexistuje, bude mít oprávnění používat příkaz crontab pouze uživatel root.

Zálohování položek crontab

Vždy se doporučuje zálohovat položky crontab. K tomu použijte syntaxi

# crontab -l> /cesta/k/souboru.txt

Například,

# crontab -l > /home/james/backup.txt

Kontrola protokolů cron

Protokoly cron jsou uloženy v souboru /var/log/cron. Chcete-li zobrazit protokoly cron, spusťte příkaz:

# cat /var/log/cron

Chcete-li zobrazit živé protokoly, použijte příkaz tail, jak je znázorněno:

# tail -f /var/log/cron

Závěr

V této příručce jste se naučili, jak vytvářet úlohy cron pro automatizaci opakujících se úloh, jak zálohovat, a také jak prohlížet protokoly cron. Doufáme, že tento článek poskytl užitečné informace o úlohách cron. Neváhejte se podělit o své názory a komentáře.


Linux
  1. Linuxové tipy pro používání cronu k plánování úloh

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

  3. Jak naplánovat úlohy pomocí at v Linuxu

  1. Jak používat cron na Linuxu

  2. Jak vytvořit spouštěcí skript pomocí Crontab v Lubuntu Linux

  3. Jak nastavit automatizaci úloh na Linux VPS pomocí Cronu?

  1. Jak nastavit Cron Job v Linuxu

  2. Automatizujte systémové úlohy pomocí crontab na CentOS 7

  3. Automatizujte systémové úlohy pomocí Crontab na Ubuntu