1. Co je Cron?
Cron je plánovač úloh založený na čase, používaný v Linuxu a unixových operačních systémech. Primárně jej používají správci systémů a vývojáři k automatizaci úloh, které je třeba spouštět pravidelně. V Ubuntu je Cron nainstalován ve výchozím nastavení a široce se používá pro správu serverů, zálohy, naplánované skripty a další.
Jak Cron funguje
Cron funguje tak, že definuje příkazy v konfiguračním souboru nazvaném „crontab“. Crontab obsahuje pět polí, která určují, kdy má být úloha spuštěna, což uživatelům umožňuje naplánovat úlohy s přesným časovým rozvrhem.
- 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 cron úloha, která spouští zálohu každý den v 5:00 ráno, vypadá takto:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Toto ukazuje, jak Cron umožňuje efektivní automatizaci opakujících se úloh.
Kdo by měl Cron používat?
Cron je nezbytný nejen pro správce systémů, ale také pro vývojáře a každého, kdo potřebuje automatizovat rutinní úlohy nebo pravidelně spouštět skripty na serveru.

2. Nastavení cron úloh
Úprava crontabu
Pro nastavení cron úlohy musíte upravit svůj uživatelský crontab soubor. V Ubuntu můžete tento soubor otevřít pomocí příkazu crontab -e:
crontab -e
Základní syntaxe cron úloh
Cron úloha se skládá z časových polí následovaných příkazem, který se má spustit. Obecná syntaxe je:
Minute Hour Day Month DayOfWeek Command
Následující cron úloha vytvoří zálohu adresáře /home/ každý den v 5:00 ráno:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Ukládání a kontrola položek crontabu
Po přidání cron úloh uložte a zavřete editor, aby se změny projevily. Pro ověření, zda jsou vaše cron úlohy správně zaregistrovány, 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
Pokud potřebujete spouštět příkazy každou minutu nebo každých pět minut, můžete je naplánovat takto:
- Spouštět každou minutu:
* * * * * /path/to/script.sh
- Spouštět každých 5 minut:
*/5 * * * * /path/to/script.sh
Spouštění úloh v konkrétních dnech nebo časových intervalech
Pro spuštění skriptu jen v konkrétní den specifikujte pole den v týdnu. Například pro spuštění skriptu každé pondělí v 2:15 ráno:
15 2 * * 1 /path/to/script.sh
4. Řešení chyb a odstraňování problémů
Časté problémy s cron úlohami a řešení
Cron úloha se nespouští
Pokud se cron úloha nespustí, zkontrolujte následující:
- Oprávnění: Ujistěte se, že skript nebo příkaz má spustitelná oprávnění.
- Používejte úplné cesty: Cron používá omezenou proměnnou
$PATH, takže příkazy musí obsahovat absolutní cesty./usr/bin/python3 /path/to/script.py
Kontrola logů
Logy cronu jsou uloženy v /var/log/syslog. Kontrola tohoto souboru odhalí, proč úloha selhala nebo zda byla úspěšně provedena:
grep CRON /var/log/syslog
5. Bezpečnostní úvahy
Řízení přístupu uživatelů
Aby bylo omezeno, kteří uživatelé mohou vytvářet cron úlohy, použijte /etc/cron.allow a /etc/cron.deny. Přidání uživatelského jména do /etc/cron.allow umožní pouze tomuto uživateli konfigurovat cron úlohy:
echo "user_name" >> /etc/cron.allow
Bezpečnost přihlášení a cron úlohy
Když cron spouští úlohy vyžadující autentizaci, může být nutné automatizovat SSH klíče nebo bezpečně spravovat hesla.
6. Použití Anacronu pro méně časté úlohy
Co je Anacron?
Anacron je plánovač úloh určený pro systémy, které neběží nepřetržitě. Spouští zmeškané úlohy při dalším spuštění systému, což je ideální pro stolní počítače a notebooky, které nejsou vždy online.
7. Praktické příklady cron úloh
Automatizace záloh
Příklad cron úlohy, která vytváří denní zálohy s časovými razítky:
0 2 * * * tar -zcf /var/backups/home_backup_$(date +\%Y-\%m-\%d).tgz /home/
8. Závěr
the paragraph).Využitím Cronu a Anacronu můžete efektivně automatizovat rutinní úkoly a zvýšit spolehlivost provozu vašeho systému. Obě nástroje snižují administrativní zátěž a zajišťují, že kritické údržbové úkoly běží automaticky. Zkuste je začlenit do svého systému a zažijte výhody provozu na vlastní kůži.



