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

112 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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ů
---