Crontab je důležitý linuxový nástroj, který se používá k plánování úloh tak, aby bylo možné programy a skripty spouštět v určitou dobu. V tomto článku vás naučím, jak si můžete naplánovat práci v Debianu 10, a ukážu vám několik příkladů.
Předpoklady
Než budete pokračovat, musíte mít oprávnění root.
Instalace Cron a Crontab
V mém Debianu 10 je standardně nainstalován cron. Pokud však není na vašem počítači nainstalována, spusťte na terminálu několik následujících příkazů s právy root.
apt-get update
apt-get install cron
Chcete-li získat seznam úloh cronu již naplánovaných na vašem počítači, proveďte na terminálu následující.
crontab -l
Otevření crontab pomocí textového editoru
Chcete-li otevřít crontab pomocí textového editoru, proveďte následující příkaz s právy root.
crontab -e
Jakmile je příkaz vykonán, budete požádáni o výběr textového editoru, jak je znázorněno na následujícím snímku obrazovky.
Příkaz crontab -e otevře crontab aktuálně přihlášeného uživatele, což je v mém příkladu uživatel root. Chcete-li otevřít crontab jiného uživatele, řekněme uživatele „tom“, přidejte příznak -u následovaný jménem uživatele. Příklad:
crontab -e -u tom
Syntaxe crontab
Linux crontab má šest polí, jak je uvedeno níže.
* * * * * /path/to/script.sh
Každé z polí má následující význam.
[Minute] [hodina] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [příkaz]
Minuta 0 – 59
Hodina 0 – 23
Den v měsíci 1 – 31
Měsíc roku 1 – 12
Den v týdnu 0 – 7
Základní příklad úlohy cron
Zde jsou některé příklady úloh cron.
1. Naplánujte spouštění úlohy cron ve 2:00 denně
0 2 * * * /bin/sh backup.sh
Výše uvedená úloha cron se bude provádět denně ve 2 hodiny ráno a spustí skript backup.sh. Tím bude záloha zachována každý den.
2. Naplánujte spouštění úlohy cron dvakrát denně
0 5,17 * * * /scripts/script.sh
Úloha výše cron se bude provádět denně v 5:00 a 17:00. Více časů lze zadat pomocí čárky.
3. Naplánujte spouštění úlohy cron každou minutu
* * * * * scripts/script.sh
Výše uvedená úloha cron se bude provádět každou minutu.
4. Naplánujte si úlohu cron, která se má spustit každou neděli v 17:00
0 17 * * sun /scripts/script.sh
Výše uvedená úloha cron se bude provádět každou neděli v 17:00. Tento typ cronu je užitečný pro provádění týdenních úkolů, jako je rotace protokolů atd.
5. Naplánujte spouštění úlohy cron každých 10 minut
Pokud chcete, aby se vaše úloha spouštěla každých 10 minut, je třeba aktualizovat cron následovně.
*/10 * * * * /scripts/monitor.sh
„*/10“ znamená spuštění každých 10 minut.
6. Naplánujte spouštění úlohy cron na vybrané měsíce
Předpokládejme, že chcete spustit cron v lednu, květnu a srpnu, je třeba nastavit úlohu cron následovně.
* * * jan,may,aug * /script/script.sh
Více měsíců lze opět zadat čárkou.
7. Naplánujte spouštění úlohy cron ve vybrané dny
Pokud chcete, aby byla vaše úloha cron provedena ve vybrané dny, předpokládejme neděli a pátek v 17:00, mělo by to vypadat následovně.
0 17 * * sun,fri /script/script.sh
8. Naplánujte si více úloh v jedné cronu
V jedné úloze lze spustit více skriptů následovně. Oba skripty by měly být odděleny středníkem.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
9. Naplánujte spouštění úlohy cron každých 30 sekund
Chcete-li naplánovat provádění úlohy cron každých 30 sekund, musíme nastavit dvě cron takto:
* * * * * /scripts/script.sh * * * * * sleep 30; /scripts/script.sh
10. Naplánujte úlohu cronu tak, aby se spouštěla dvakrát každou neděli a pondělí
Pokud byste chtěli naplánovat provedení úlohy dvakrát ve 4:00 a 17:00 každou neděli a pondělí, cronjob by měl vypadat takto:
0 4,17 * * sun,mon /scripts/script.sh
Hodina i týden dne byly odděleny čárkami.
Závěr
Děkujeme, že jste si přečetli tento článek o úlohách cron. Krásný den!!