archos 58ceaba37d Aktualizace soubouru crontab.md
Do souboru jsem přidal instalaci v Arch Linuxu a spiúštění Cronie jako
služby
2025-04-05 20:34:54 +02:00

137 lines
3.0 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.
## 🛠️ Instalace cronu na Arch Linuxu
Arch Linux ve výchozím stavu `cron` neobsahuje.
Doporučený balíček je **`cronie`**, který poskytuje `crontab` i `cron` službu pod `systemd`.
### Instalace:
```bash
sudo pacman -S cronie
```
### Aktivace služby:
```bash
sudo systemctl enable --now cronie
```
Zkontroluj, že běží:
```bash
systemctl status cronie
```
> Pokud služba neběží, `crontab` úlohy se vůbec nebudou spouštět.
---
## 🧭 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ů
---