Úvod
Démon Cron je vestavěný nástroj Linux, který spouští procesy ve vašem systému v naplánovanou dobu. Cron čte crontab (cron tabulky) pro předdefinované příkazy a skripty.
Pomocí specifické syntaxe můžete nakonfigurovat úlohu cron naplánovat automatické spouštění skriptů nebo jiných příkazů.
Tato příručka ukazuje, jak nastavit úlohu cron v systému Linux, s příklady.
Předpoklady
- Systém se systémem Linux
- Přístup do příkazového řádku/okna terminálu (Ctrl –Alt –T nebo Ctrl –Alt –F2 )
- Uživatelský účet s uživatelem root nebo sudo privilegia
Základní syntaxe Crontab
Cron přečte konfigurační soubory pro seznam příkazů, které je třeba provést. Démon používá k interpretaci řádků v crontab specifickou syntaxi konfigurační tabulky.
Abychom mohli nastavit úlohu cron, musíme porozumět základním prvkům, které tvoří tuto syntaxi. Standardní formulář pro crontab line je následující:
a b c d e /directory/command output
Tedy části cron
příkaz jsou:
1. Prvních pět polí a b c d e
zadejte čas/datum a opakování úlohy.
2. Ve druhé části /directory/command
určuje umístění a skript, který chcete spustit.
3. output
posledního segmentu je volitelný. Definuje, jak systém upozorní uživatele na dokončení úlohy.
1. Cron Job Time Format
Prvních pět polí v příkazu představuje čísla, která definují, kdy a jak často se příkaz spouští. Každou pozici odděluje mezera, která představuje konkrétní hodnotu.
Níže uvedená tabulka shrnuje možné hodnoty pro pole a příklad syntaxe:
Pole | Možné hodnoty | Syntaxe | Popis |
[a] – minuta | 0–59 | 7 * * * * | Úloha cron se spouští pokaždé, když systémové hodiny ukazují 7 v pozici minuty. |
[b] – hodina | 0–23 | 0 7 * * * | Úloha cron se spustí vždy, když systémové hodiny ukazují 7:00 (19:00 by bylo kódováno jako 19). |
[c] – den | 0–31 | 0 0 7 * * | Dnem v měsíci je 7, což znamená, že se úloha spouští každých 7 dní v měsíci. |
[d] – měsíc | 0 =žádný a 12 =prosinec | 0 0 0 7 * | Číselný měsíc je 7, což určuje, že se úloha spustí pouze v červenci. |
[e] – Den v týdnu | 0 =neděle a 7 =neděle | 0 0 * * 7 | 7 na aktuální pozici znamená, že úloha bude probíhat pouze v neděli. |
2. Příkaz k provedení
Další část určuje příkaz, který se má provést. Představuje přesný adresář a název souboru skriptu nebo příkazů, které má cron dokončit. Například:
/root/backup.sh
V našem příkladu se příkaz podívá do kořenového adresáře systému a spustí backup.sh skript. Můžete zadat libovolný skript nebo příkaz.
3. Výstup (volitelné)
Ve výchozím nastavení cron
při spuštění odešle e-mail vlastníkovi souboru crontab. Je to pohodlný způsob, jak sledovat úkoly. Mějte na paměti, že pravidelné nebo menší úkoly mohou rychle zaplnit vaši doručenou poštu.
Protože se jedná o volitelnou funkci, můžete tomuto scénáři zabránit vypnutím výstupního e-mailu. Chcete-li vypnout e-mailový výstup, přidejte následující řetězec, >/dev/null 2>&1
, po polích časování a příkazu.
* * * * * directory/command >/dev/null 2>&1
4. Pomocí operátorů (volitelné)
Pro efektivitu syntaxe cron také používá operátory. Operátory jsou speciální znaky, které provádějí operace s hodnotami poskytnutými v poli cron.
- Hvězdička (*) zastupuje všechny hodnoty. Pomocí tohoto operátoru udržíte úkoly spuštěné během všech měsíců nebo dnů v týdnu.
- Čárka (,) specifikuje samostatné jednotlivé hodnoty.
- Pomlčka (–) označuje rozsah hodnot.
- Lomitko (/) se používá k rozdělení hodnoty do kroků. (*/2 by byla každá druhá hodnota, */3 by byla každá třetina, */10 by byla každá desátá atd.)
Nastavení úlohy Cron
Chcete-li nakonfigurovat úlohu cron, otevřete crontab pomocí preferovaného textového editoru a zadejte syntaxi příkazu, který chcete spustit.
Jak upravit soubor crontab?
Chcete-li otevřít konfigurační soubor crontab pro aktuálního uživatele, zadejte v okně terminálu následující příkaz:
crontab –e
Můžete přidat libovolný počet naplánovaných úloh, jednu na řádek.
Po dokončení přidávání úkolů soubor uložte a odejít. Démon cron přečte a provede poskytnuté instrukce.
Pamatujte, že pro použití změn není nutné restartovat Cron.
Upravit crontab pro jiného uživatele
Chcete-li upravit crontab pro jiného uživatele, zadejte následující příkaz:
crontab –u other_username –e
Příklady úloh Cron
Při zadávání úloh zadejte všechny hodnoty pomocí hvězdičky. Vložením hodnoty do jednoho z polí se příkaz spustí pouze na této hodnotě. Například:
* 2 0 * 4 /root/backup.sh
I když je nastaveno na spuštění ve 2 hodiny ráno, spustí se pouze tehdy, když první v měsíci (0) připadne na středu (4). Pokud změníte na následující:
* 2 0 * * /root/backup.sh
Příkaz se spustí vždy první den v měsíci ve 2 hodiny ráno. Následující tabulka obsahuje několik základních příkazů pomocí /root/backup.sh soubor z našich předchozích příkladů.
Cron Job | Příkaz |
Spouštějte úlohu Cron každou minutu | * * * * * /root/backup.sh |
Spouštět úlohu Cron každých 30 minut | 30 * * * * /root/backup.sh |
Spouštět Cron Job každou hodinu | 0 * * * */root/backup.sh |
Spouštějte Cron Job každý den o půlnoci | 0 0 * * * /root/backup.sh |
Spouštějte Cron Job každý den ve 2:00 | 0 2 * * * /root/backup.sh |
Spouštět Cron Job každý 1 v měsíci | 0 0 1 * * /root/backup.sh |
Spouštět Cron Job každých 15 v měsíci | 0 0 15 * * /root/backup.sh |
Spusťte Cron Job 1. prosince – Půlnoc | 0 0 0 12 * /root/backup.sh |
Spusťte Cron Job v sobotu o půlnoci | 0 0 * * 6 /root/backup.sh |
Použití speciálních znaků
Pomocí lomítka můžete časový řetězec rozdělit na kroky. Spuštění zálohy každých 15 minut:
*/15 * * * *
*
znamená všechny hodnoty a /15
počítá a opakuje se každých 15 minut.
K určení rozsahu použijte pomlčku. Spuštění kódu každý všední den ve 4:00:
0 4 * * 1-5 /root/backup.sh
V tomto případě 1-5
určuje pondělí – pátek.
Jednotlivé instance, kdy se má kód spustit, použijte čárku:
0 4 * * 2,4 /root/backup.sh
Tím by se kód spustil v úterý a čtvrtek ve 4 hodiny ráno.
Některé zástupné znaky lze kombinovat. Nechte příkaz spouštět každý druhý den 37 minut po hodině:
37 1-23/2 * * * /root/backup.sh
1-23
určuje rozsah hodin, /2
nastaví interval na každou druhou hodinu.
Seznam existujících úloh Cron
Můžete vypsat všechny úlohy cron ve vašem systému, aniž byste museli otevírat konfigurační soubor crontab. V okně terminálu zadejte následující příkaz:
crontab –l