Linuxový příkaz crontab se používá k plánování úloh cron. Úloha cron je praktický nástroj pro automatizaci, který uživatelům Linuxu umožňuje provádět automatizované úlohy v určitých obdobích nebo intervalech.
Toto je přátelský způsob plánování úloh, které by jinak byly únavné, pokud by byly spravovány ručně. Úlohy cron obvykle používají správci systému k automatizaci úloh, jako je zálohování serveru, restartování, odesílání oznámení a čištění, abychom zmínili jen několik.
Úloha cron běží tiše na pozadí a kontroluje /etc/crontab
soubor a /var/spool/cron
a /etc/cron.*/
adresáře. V tomto článku se dozvíte, jak vytvářet a spravovat úlohy cron ve vašem systému Linux.
Linux Cron Job Structure
Anatomie úlohy cron je znázorněna níže.
* * * * * COMMAND arg1 arg2
NEBO
* * * * * /path/to/script arg1 arg2
Zleva
The 1st entry represents Minutes [0 - 59]
The 2nd entry represents Hours [0 - 24]
The 3rd entry represents Days [0 - 31]
The 4th entry represents Months [0 - 12]
The 5th entry represents Days of the week [0 - 7]
Příklad crontab pro Linux
Nyní, když máte kostru pro crontab, je jeho psaní docela snadné, pokud znáte příkaz nebo cestu ke svému skriptu.
V tomto příkladu vytvoříme crontab pro restartování systému Linux.
vim reboot.sh
Zkopírujte a vložte níže uvedený obsah do souboru bash.
#!/bin/bash
0 3 * * * /sbin/reboot
Při použití syntaxe crontab, jak bylo uvedeno výše, se úloha cron spustí denně ve 3:00 a restartuje systém.
Uložte a ukončete textový editor.
Dále přidělte oprávnění ke spuštění podle obrázku.
# chmod +x reboot.sh
Chcete-li ověřit oprávnění souboru, spusťte:
# ls -l reboot.sh
Chcete-li inicializovat crontab, spusťte
# crontab reboot.sh
Pokud chcete zobrazit obsah crontab uživatele, který je aktuálně přihlášen, spusťte příkaz.
crontab -l
Když je crontab spuštěný, bude crontab spuštěn ve stanovený čas, tj. ve 3:00 místního času.
Chcete-li odstranit všechny úlohy cron v systému, použijte -r
možnost.
crontab -r
Další příklady spouštění úloh cron v určitých časových intervalech
- Chcete-li spustit úlohu cron každou minutu , spusťte
* * * * * COMMAND
Pokud je aktuální čas 6:00, úloha cron se spustí v 6:01, 6:02 a tak dále.
- Chcete-li spustit úlohu cron po každé n-té minutě , například po každých 10 minutách spusťte
*/10 * * * * COMMAND
- Chcete-li spustit úlohu cron každou n-tou minutu každou hodinu , například po každých 30 minutách každou hodinu spusťte
30 * * * * COMMAND
- Chcete-li spustit úlohu cron každou hodinu , tj. každých 0 minut, spusťte
0 * * * * COMMAND
- Chcete-li spustit úlohu cron po každých n hodinách , například po každých 6 hodinách spusťte
0 */6 * * * COMMAND
- Pro spuštění úlohy cron v konkrétní den , řekněme pátek, spusťte
0 0 * * FRI COMMAND
- Pokud chcete spustit úlohu cron od pondělí do pátku spustit
0 0 * * 1-5 COMMAND
To provede příkaz v 00:00 hodin každý den od pondělí do pátku.
- Provádění úlohy cron každý , spusťte
0 0 * * * COMMAND
- Provedení úlohy cron každý první den v měsíci
0 0 1 * * COMMAND
- Provedení úlohy cronkaždý první den v měsíci v určitou dobu , řekněme 20:30 hodin, spustit
30 20 1 * * COMMAND
- Chcete-li spustit úlohu každého čtvrtletí roku, tj. 1. den po každých 3 měsících spusťte
0 0 1 */3 * COMMAND
- Pro spuštění úlohy cron každý rok , spusťte
0 0 1 1 * COMMAND
Tato úloha cron se bude provádět každý pátek přesně v 00:00.
Plánování úloh cron pomocí Crontab Guru
Syntaxe Crontab může být docela matoucí a obtížně zvládnutelná. Ale nebojte se. Crontab Guru je velmi přátelský online nástroj, který vám pomůže hladce definovat vaše časové intervaly bez velkých potíží. Je to webové rozhraní, které má dobře označené časové intervaly crontab a vše, co je potřeba, je zadat čísla do textového pole, zatímco nástroj interpretuje crontab. V níže uvedeném příkladu nástroj vygeneroval crontab pro automatizaci úlohy cron každých 6:00 od pondělí do soboty.