2025-04-05 19:25:09 +02:00

2.6 KiB
Raw Blame History

Automatické spouštění úloh pomocí cron

cron umožňuje automatické spouštění příkazů nebo skriptů v nastavený čas.


🧭 Základní syntaxe

Každý řádek v crontab má tento formát:

# ┌───────────── minuta (0 - 59)
# │ ┌───────────── hodina (0 - 23)
# │ │ ┌───────────── den v měsíci (1 - 31)
# │ │ │ ┌───────────── měsíc (1 - 12)
# │ │ │ │ ┌───────────── den v týdnu (0 - 7) (0 a 7 = neděle)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * příkaz k provedení

🧮 Význam jednotlivých polí

Pole Rozsah Popis
Minuta 0-59 Minuta, kdy se má úloha spustit
Hodina 0-23 Hodina ve 24h formátu
Den měsíce 1-31 Den v měsíci
Měsíc 1-12 Měsíc (1 = leden, 12 = prosinec)
Den týdne 0-7 Den v týdnu (0 a 7 = neděle)
Příkaz Úplná cesta ke skriptu/příkazu

Použij * pro “každou hodnotu”.
Např. * * * * * = každou minutu.


💡 Ukázky použití

# Každý den v 6:00 spustit zálohovací skript
0 6 * * * /home/user/scripts/backup.sh

# Každých 15 minut kontrola stavu
*/15 * * * * /home/user/scripts/check_status.sh

📅 Vytvoření a editace crontabu

Na Arch Linuxu (a většině systémů) upravíš crontab takto:

crontab -e

Tím se otevře crontab v editoru (např. nano nebo vim).


📥 Export a verzování crontabu

Pro správu crontab v Git repozitáři:

1. Uložit aktuální crontab do souboru

crontab -l > scripts/crontab

2. Nahrát zpět do systému

crontab scripts/crontab

3. Doporučená struktura v repozitáři

repo-root/
├── scripts/
│   └── crontab

🧪 Tipy pro testování

  • Skripty musí být spustitelné:

    chmod +x script.sh
    
  • Používej absolutní cesty (např. /home/user/scripts/muj.sh)

  • Pro logování výstupu do souboru:

    0 6 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1
    

📚 Užitečné odkazy