diff --git a/guides/crontab.md b/guides/crontab.md new file mode 100644 index 0000000..5ee2545 --- /dev/null +++ b/guides/crontab.md @@ -0,0 +1,111 @@ +# 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: + +```cron +# ┌───────────── 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í + +```cron +# 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: + +```bash +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 + +```bash +crontab -l > scripts/crontab +``` + +### 2. Nahrát zpět do systému + +```bash +crontab scripts/crontab +``` + +### 3. Doporučená struktura v repozitáři + +``` +repo-root/ +├── scripts/ +│ └── crontab +``` + +--- + +## 🧪 Tipy pro testování + +- Skripty musí být **spustitelné**: + ```bash + chmod +x script.sh + ``` + +- Používej **absolutní cesty** (např. `/home/user/scripts/muj.sh`) + +- Pro logování výstupu do souboru: + ```cron + 0 6 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1 + ``` + +--- + +## 📚 Užitečné odkazy + +- [crontab.guru](https://crontab.guru) – snadná vizualizace a kontrola výrazů + +--- +