Pokud pracujete v IT, možná budete muset naplánovat různé opakující se úkoly jako součást vašich automatizačních procesů.
Můžete například naplánovat určitou úlohu tak, aby se pravidelně spouštěla v určitou denní dobu. To je užitečné při provádění denních záloh, měsíční archivace protokolů, týdenního mazání souborů za účelem vytvoření místa a tak dále.
A pokud jako OS používáte Linux, použijete k tomu něco, čemu se říká cron job.
Co je to cron?
Cron je nástroj pro plánování úloh přítomný v systémech podobných Unixu. Démon crond umožňuje funkčnost cronu a běží na pozadí. Cron čte crontab (cron tabulky) pro spouštění předdefinovaných skriptů.
Pomocí specifické syntaxe můžete nakonfigurovat úlohu cron tak, aby naplánovala automatické spouštění skriptů nebo jiných příkazů.
U jednotlivých uživatelů zkontroluje služba cron následující soubor:/var/spool/cron /crontabs

Co jsou úlohy cron v Linuxu?
Každá úloha, kterou naplánujete prostřednictvím cronů, se nazývá úloha cron. Úlohy Cron nám pomáhají automatizovat naše rutinní úkoly, ať už jsou hodinové, denní, měsíční nebo roční.
Nyní se podívejme, jak úlohy cron fungují.
Jak řídit přístup ke cronům
Aby bylo možné používat úlohy cron, musí správce povolit přidávání úloh cron pro uživatele v souboru '/etc/cron.allow'.
Pokud se zobrazí výzva jako je tato, znamená to, že nemáte oprávnění používat cron.

Chcete-li umožnit Johnovi používat crony, zahrňte jeho jméno do '/etc/cron.allow'. To umožní Johnovi vytvářet a upravovat úlohy cron.

Uživatelům lze také odepřít přístup k úloze cron zadáním jejich uživatelských jmen do souboru '/etc/cron.d/cron.deny'.
Jak přidat úlohy cron v Linuxu
Nejprve, abyste mohli používat úlohy cron, musíte zkontrolovat stav služby cron. Pokud cron není nainstalován, můžete si jej snadno stáhnout prostřednictvím správce balíčků. Použijte toto ke kontrole:
# Check cron service on Linux system
sudo systemctl status cron.service
Syntaxe úlohy Cron
Crontabs používají následující příznaky pro přidávání a výpis úloh cron.
crontab -e
:upraví položky crontab pro přidání, odstranění nebo úpravu úloh cron.crontab -l
:seznam všech úloh cron pro aktuálního uživatele.crontab -u username -l
: vypsat crony jiného uživatele.crontab -u username -e
: upravit crony jiného uživatele.
Když vypíšete crony, uvidíte něco takového:
# Cron job example
* * * * * sh /path/to/script.sh
Ve výše uvedeném příkladu
- * * * * * představuje minuty, hodiny, dny, měsíce, dny v týdnu.
Hodnota | Popis | |
---|---|---|
Minuty | 0–59 | Příkaz bude proveden v konkrétní minutu. |
Otevírací doba | 0–23 | Příkaz bude proveden v konkrétní hodinu. |
Dny | 1–31 | Příkazy budou provedeny v těchto dnech v měsících. |
Měsíce | 1–12 | Měsíc, ve kterém je třeba provést úkoly. |
Pracovní dny | 0–6 | Dny v týdnu, kdy se spouštěly příkazy. Zde je 0 neděle. |
sh
znamená, že skript je bash skript a měl by být spuštěn z/bin/bash
./path/to/script.sh
určuje cestu ke skriptu.
Níže je uveden souhrn syntaxe úlohy cron.
* * * * * sh /path/to/script/script.sh
| | | | | |
| | | | | Command or Script to Execute
| | | | |
| | | | |
| | | | |
| | | | Day of the Week(0-6)
| | | |
| | | Month of the Year(1-12)
| | |
| | Day of the Month(1-31)
| |
| Hour(0-23)
|
Min(0-59)
Příklady úloh Cron
Níže je několik příkladů plánování úloh cronu.
Plán | Plánovaná hodnota |
---|---|
5 0 * 8 * | V 00:05 v srpnu. |
5 4 * * 6 | V neděli ve 4:05. |
0 22 * * 1-5 | Ve 22:00 každý den v týdnu od pondělí do pátku. |
Je v pořádku, pokud to nedokážete pochopit najednou. Můžete cvičit a generovat plány cron s crontab guru.
Jak nastavit úlohu cron
V této části se podíváme na příklad, jak naplánovat jednoduchý skript s úlohou cron.
- Vytvořte skript s názvem
date-script.sh
který vytiskne systémové datum a čas a připojí je k souboru. Skript je zobrazen níže:

2. Udělejte skript spustitelným tím, že mu udělíte práva k provádění.
chmod 775 date-script.sh
3. Přidejte skript do crontab pomocí crontab -e
.
Zde jsme naplánovali spuštění za minutu.

4. Zkontrolujte výstup souboru date-out.txt
. Podle skriptu by se do tohoto souboru mělo každou minutu tisknout systémové datum.

Jak řešit problémy s crony
Crony jsou opravdu užitečné, ale nemusí vždy fungovat tak, jak bylo zamýšleno. Naštěstí existuje několik účinných metod, které můžete použít k jejich odstranění.
- Zkontrolujte plán.
Nejprve můžete zkusit ověřit plán, který je nastaven pro cron. Můžete to udělat pomocí syntaxe, kterou jste viděli ve výše uvedených částech.
2. Zkontrolujte protokoly cron.
Nejprve musíte zkontrolovat, zda cron běžel v zamýšlený čas nebo ne. Můžete to ověřit v protokolech cron umístěných na var/log/cron
. V některých distribucích lze protokoly nalézt na adrese /var/log/syslog
Pokud je v těchto protokolech záznam ve správný čas, znamená to, že cron běžel podle vámi nastaveného plánu.
Níže jsou protokoly našeho příkladu úlohy cron. Všimněte si prvního sloupce, který zobrazuje časové razítko. Cesta skriptu je také uvedena na konci řádku.

3. Přesměrujte výstup cronu do souboru.
Výstup cronu můžete přesměrovat do souboru a zkontrolovat soubor na případné chyby.
# Redirect cron output to a file
* * * * * sh /path/to/script.sh &> log_file.log
Zabalení
Automatizace úloh, stejně jako u úloh cron, snižuje opakující se práci, kterou musíte dělat. Umožňuje také strojům automaticky se léčit a pracovat nepřetržitě bez lidského zásahu.
Automatizace v Linuxu silně závisí na úlohách cronů, takže byste se rozhodně měli naučit crony a experimentovat s nimi.
Děkuji za přečtení až do konce. Zpětná vazba je vždy vítána.
Pokud vám tento článek pomohl, sdílejte jej se svými přáteli.
Pojďme se připojit na Twitteru!