1. Co je Cron?
Cron je časově orientovaný plánovač úloh pro operační systémy Linux a Unix. Používá jej převážně správci systémů a vývojáři k automatizaci úkolů, které je třeba spouštět pravidelně. Cron je předinstalován v Ubuntu a široce se používá pro správu serverů, zálohování, plánované spouštění skriptů a různé další automatizační úkoly.
Jak Cron funguje
Cron pracuje pomocí souboru nazvaného „crontab“, ve kterém jsou zadány příkazy, jež se mají spouštět v určených časech nebo intervalech. Soubor crontab se skládá z pěti polí, z nichž každé umožňuje přesné naplánování úloh na základě zadaných hodnot.
- Minuta (0–59)
- Hodina (0–23)
- Den v měsíci (1–31)
- Měsíc (1–12)
- Den v týdnu (0–7, kde 0 a 7 představují neděli)
Například pokud chcete naplánovat úlohu zálohování, která se spustí každý den v 5 ráno, přidáte do svého souboru crontab následující řádek:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Tím se ukazuje, jak lze Cron použít k efektivní automatizaci opakujících se úloh.
Kdo by měl Cron používat?
Cron je nezbytný pro správce systémů, vývojáře, kteří chtějí zjednodušit každodenní úkoly, a pro každého, kdo potřebuje spouštět naplánované skripty na serverovém prostředí.

2. Nastavení Cron úloh
Úprava souboru Crontab
Pro nastavení Cron úlohy musíte získat přístup a upravit soubor „crontab“. V Ubuntu můžete otevřít svůj uživatelský crontab soubor pomocí následujícího příkazu:
crontab -e
Základní syntaxe Cron úlohy
Záznam Cron úlohy se skládá z časových polí následovaných příkazem k provedení. Obecný formát je:
Minute Hour Day Month Weekday Command
Například následující Cron úloha vytvoří zálohu adresáře /home/ každý den v 5 ráno:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Ukládání a ověřování změn v Crontab
Po přidání úlohy do souboru crontab soubor uložte a zavřete editor, aby se změny projevily. Pro ověření aktuálních Cron úloh použijte následující příkaz:
crontab -l
3. Pokročilé plánování Cron úloh
Spouštění úloh v uživatelských intervalech
Pro spuštění úlohy v konkrétních intervalech, například každou minutu nebo každých pět minut, použijte následující syntaxi:
- Každou minutu:
* * * * * /path/to/script.sh
- Každých pět minut:
*/5 * * * * /path/to/script.sh
Spouštění úloh ve specifické dny a časy
Pokud potřebujete spustit úlohu v konkrétní dny, použijte pole pro den v týdnu. Například pro spuštění skriptu každé pondělí v 2:15 ráno použijte:
15 2 * * 1 /path/to/script.sh
4. Zpracování chyb a řešení problémů
Časté problémy s Cron úlohami
Cron úloha se nespouští
Pokud se vaše Cron úloha nespouští, zkontrolujte následující klíčové body:
- Zkontrolujte oprávnění: Ujistěte se, že skript nebo příkaz má oprávnění ke spuštění.
- Používejte úplné cesty: Cron běží v omezeném prostředí, proto zadejte úplnou cestu k vašim příkazům a souborům.
/usr/bin/python3 /path/to/script.py
Kontrola Cron logů
Cron zapisuje podrobnosti o svém provádění do /var/log/syslog. Pro kontrolu logů ohledně chyb souvisejících s Cron použijte:
grep CRON /var/log/syslog

5. Bezpečnostní úvahy
Řízení přístupu uživatelů
Pro omezení, kteří uživatelé mohou plánovat Cron úlohy, můžete použít soubory /etc/cron.allow a /etc/cron.deny. Pokud uživatele uvedete v /etc/cron.allow, budou jen oni mít povoleno vytvářet Cron úlohy.
echo "user_name" >> /etc/cron.allow
Bezpečnost přihlášení a Cron úlohy
Při spouštění Cron úloh, které vyžadují autentizaci, je důležité vyhnout se chybám souvisejícím s hesly. Použití automatizace SSH klíčů nebo bezpečného správce hesel může pomoci předejít selhání autentizace.
6. Používání Anacronu: Automatizace méně častých úkolů
Co je Anacron?
Anacron je plánovač úloh určený pro systémy, které neběží nepřetržitě. Na rozdíl od Cronu, který vyžaduje, aby byl systém v naplánovaném čase online, Anacron zajistí, že zmeškané úlohy se spustí, jakmile bude systém opět zapnutý. To ho činí ideálním pro stolní počítače a notebooky.
7. Praktické případy použití Cron úloh
Automatizace záloh
Nastavení Cron úlohy pro automatizaci záloh v pravidelném intervalu může pomoci předejít ztrátě dat. Níže je příklad Cron úlohy, která každý den v 2 hodiny ráno vytvoří zálohu adresáře /home/ a do názvu souboru zahrne aktuální datum.
0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/
8. Závěr
Využitím Cronu a Anacronu můžete efektivně automatizovat opakující se úlohy a zvýšit spolehlivost provozu vašeho systému. Při správném použití tyto nástroje snižují provozní náklady a zajišťují, že nezbytné údržbové úlohy proběhnou bez ručního zásahu. Implementujte je ve svém systému a zažijte výhody automatizace.


