Jak vytvářet a přidávat úlohy Cron v Linuxu

Plánování pravidelných úloh pomocí Cron v Linuxu

cron je linuxový program, který se používá k naplánování příkazu nebo skriptu, který se má provést později. Lze jej také použít k plánování periodicky spouštěných příkazů a skriptů. Programy naplánované pomocí cronu se běžně označují jako Cron Jobs. Jeho hlavní použití je pro úlohy správy systému, jako je pravidelné zálohování, pravidelné aktualizace softwaru a další podobné úkoly údržby.

Úvod

cron běží jako démon v Linuxu, tedy jako proces na pozadí. Umožňuje uživatelům plánovat úlohy přímo pomocí příkazu crontab, který v editoru otevře konfigurační soubor s názvem Cron File. Pro každého uživatele jsou vytvořeny samostatné soubory Cron.

Vytvoření souboru Cron a základní syntaxe

The crontab příkaz lze provést pomocí -E příznak pro úpravu existujícího souboru Cron. Pokud soubor ještě neexistuje, bude vytvořen. Pokud uživatel volá příkaz poprvé a pokud je v systému Linux nainstalováno více editorů souborů, příkaz požádá uživatele, aby si ze seznamu editorů vybral výchozí editor.

Po výběru editoru se vytvoří a otevře soubor cron pro uživatele. Nyní můžete zadat úlohy v souboru.

Obecná syntaxe pro specifikaci úlohy Cron je:

V podstatě, poběží v zadanou „minutu“ (0-59), „hodinu“ (0-23), „den v měsíci“ (1-31), měsíc (1-12), den v týdnu, (0-7, Pro neděli lze v Cron Job použít 0 nebo 7). Pro zjednodušení uveďme příklad:

1 2 3 4 5 echo "Ahoj"

To znamená příkaz echo "Ahoj" poběží každý pátý den v týdnu (pátek) a každý 3. den v měsíci, každý 4. měsíc v roce (duben), v čase 02:01 (2. hodina první minuty).

Pokud má být stejný příkaz spuštěn každý den v 02:01, syntaxe bude vypadat takto:

1 2 * * * echo "Ahoj"

The * znamená „vždy“ nebo „pro všechny“, např. pro všechny měsíce, pro všechny dny v týdnu atd.

Příkazový operátor (,) lze použít k zadání seznamu hodnot, kdy se má úloha opakovat. Například:

0 2,3,4 * * * echo "Ahoj"

Program bude spuštěn každý den ve 2:00, 3:00 a 4:00.

Podobně, pomlčka (-) operátor lze použít k určení rozsahu, pro který se má úloha opakovat. Například:

0-20 2 * * * echo "Ahoj"

Tím se program spustí v 02:00, 02:01, 02:02 a tak dále až do 02:20.

Konečně máme lomítko ( / ) operátor. Tento operátor slouží k zadání hodnoty intervalu, podle kterého se bude úloha opakovat. Např. */15 v poli minut znamená, že úkol by se měl opakovat každých 15 minut. 2-10/2 v poli hodiny určuje, že se úkol bude opakovat mezi 2:00 a 10:00 po každých 2 hodinách (2:00, 4:00, 6:00, 8:00, 10:00).

*/15 2-10/2 * * * echo "Ahoj"

Po provedení záznamu v souboru Cron soubor uložte a ukončete editor.

Měli byste vidět a "instalace nového crontabu" zprávu v terminálu po uložení a opuštění souboru crontab.

Makra

V Cron jsou předdefinována určitá makra, která určují některé běžně požadované časové intervaly, například každou hodinu, každý den, každý měsíc atd.

Chcete-li spustit úlohu jednou denně na začátku dne, tj. v 00:00, použijte makro @denně. Toto je ekvivalentní 0 0 * * *.

Můžete to vložit do souboru Cron stejným způsobem, jak bylo popsáno výše.

Podobným způsobem lze použít i ostatní makra, viz. @hodinově (0 minuta každé hodiny), @měsíční (00:00 prvního dne v měsíci), @týdně (00:00 prvního dne v týdnu, @roční(00:00 prvního ledna každého roku), @restartovat (při každém spuštění počítače).

Závěr

V tomto článku jsme se naučili, jak přidat Cron Jobs pro běžné spouštění v Linuxu. Správné používání Cron Jobs se hodí i pro ty nejobtížnější manuální úkoly, kterým uživatel čelí, např. pravidelné mazání starých protokolů, archivace všech druhů studených dat (data, která jsou zřídka dostupná) atd.