V tomto tutoriálu se dozvíte vše, co potřebujete vědět o Cronjob. Probereme, co je cronjob a jak ho vytvořit, a pokusíme se, aby byl méně matoucí.
Co je to Cronjob?
Cronjob je úkol, který se provádí automaticky v určitý čas. Vezměme sudo apt-get update
například.
Pokud chcete, aby byl váš repozitář apt stále aktuální, můžete k tomu využít Cronjob, například jednou denně.
Jak Cronjob funguje?
Pro tento příklad používáme instanci Ubuntu. Po přihlášení spusťte:
sudo crontab -e
Pokud to spustíte poprvé, budete dotázáni, který editor chcete jako výchozí použít. Pro začátečníky doporučujeme používat Nano.
A takto vypadá váš soubor crontab, když jej poprvé otevřete:
Tento soubor crontab je místo, kam chcete přidat všechny své cronjoby. Je důležité se seznámit se syntaxí.
Nyní, když se podíváte na spodní řádek, můžete vidět příkaz m h dom mon dow
To je to, co musíte pochopit, takže si to pojďme rozebrat:
m | h | dom | po | dow |
Minuta | Hodina | Den v měsíci | Měsíc | Den v týdnu |
Dobře, už by to mělo vrhnout nějaké světlo.
Nyní musíme pochopit, se kterými hodnotami můžeme pracovat:
- Minuty:0–59
- Otevírací doba:0–23
- DOM:1–31
- Měsíc:1–12
- DOW:0 je neděle a 7 je neděle, například:
- 0 – 6 => neděle – sobota nebo
- 1–7 => pondělí–neděle
- Obvykle nepoužíváte 7 tho, pouze 0-6
- * Je zástupný znak, což v podstatě znamená, že pokud vezmete pole minuty a vložíte do něj zástupný znak, bude se spouštět každou minutu.
Udělejme si pro sebe malý test:Nastavte Cronjob, který běží každou sobotu v 14:30 .
Odpověď:
30 14 * * 6
Dobře, takže by vám to mělo dát docela dobrou představu o tom, jak odpovídajícím způsobem nastavit čas. Celý příkaz by pak vypadal asi takto:
15 23 15 * * sudo apt-get update
Code language: JavaScript (javascript)
To by spustilo aktualizaci sudo apt-get ve 23:15, každý měsíc 15., bez ohledu na to, který den.
V případě, že si s tím opravdu nemůžete zamotat hlavu, zamiřte na https://crontab.guru/ a nechte tento nástroj, aby přemýšlel za vás.
Nastavení Cronjob
A konečně nastavme Cronjob:
sudo crontab -e
Přejděte dolů až na konec souboru a zadejte požadovaný čas a příkaz:
30 14 * * * sudo apt-get update
Code language: JavaScript (javascript)
Stiskněte CTRL + O zapište soubor a CTRL + X odejít (Nano)
Závěr
To by vám mělo dát docela dobrou představu o tom, jak Cronjobs vlastně funguje. Jakmile si omotáte logiku, je to velmi jednoduché.