Přidán návod na Cron

This commit is contained in:
archos 2025-04-05 19:25:09 +02:00
parent ac2d691d06
commit cf5ab9d5fe

111
guides/crontab.md Normal file
View File

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