CRON: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace značka: revertováno |
||
| Řádek 51: | Řádek 51: | ||
[[Kategorie:Multihosting| n]] | [[Kategorie:Multihosting| n]] | ||
[[Category:SSH přístup| a]] | [[Category:SSH přístup| a]] | ||
<!-- | |||
= O Cronu = | |||
Cron je služba v Linuxu, která slouží k automatickému spouštění úloh v naplánovaných intervalech a časech. | |||
Umožňuje správcům serverů nebo webhostingu nastavit, aby se určité skripty či příkazy spouštěly pravidelně a automaticky – například každou minutu, hodinu, den nebo jen v konkrétní čas. | |||
= Práce s cronem = | |||
Nejprve se připojte na server s Linuxem – buď fyzicky, nebo přes SSH přístup. | |||
== Přístup ke konfiguraci == | |||
s největší pravděpodobností nebude stažený balíček pro příkazy cron, proto bude potřeba je ručně přes terminál stáhnout. Příkaz pro stažení se liší s distribucí: </br> | |||
Ubuntu / Debian - <code>sudo apt update && sudo apt install cron</code> </br> | |||
Arch - <code>sudo pacman -S cronie</code> </br> | |||
Fedora / CentOS / RHEL - <code>sudo dnf install cronie</code> (novější) nebo <code>sudo yum install cronie</code> </br> | |||
Gentoo - <code>sudo emerge --ask sys-process/cronie</code> </br> | |||
[[Soubor:cron_1.png|caption]] | |||
Příkazem <code>crontab -e</code> otevřeme plánovač úloh. | |||
[[Soubor:cron_3.png|caption]] | |||
== Schéma příkazu == | |||
Příkaz cronu se skládá z pěti znaků hvězdičky a následného příkazu na vykonání, například: <code>* * * * * echo "Cron funguje!"</code> </br> | |||
Tento příkaz vykoná každou minutu výpis "Cron funguje!" </br> | |||
Každá hvězdička v příkazu ukazuje jiný časový údaj: </br> | |||
<code>* * * * * příkaz </br> | |||
│ │ │ │ │ </br> | |||
│ │ │ │ └── Den v týdnu (0–7) → 0 nebo 7 = neděle </br> | |||
│ │ │ └──── Měsíc (1–12) </br> | |||
│ │ └────── Den v měsíci (1–31) </br> | |||
│ └──────── Hodina (0–23) </br> | |||
└────────── Minuta (0–59)</code> | |||
== Volání bez ukládání == | |||
Existuje příkaz <code>wget --no-check-certificate -q -O /dev/null</code> zavolá stránku pro kontrolu dostupnosti. </br> | |||
Současně s cronem se dá využít na automatické kontroly stránek, nebo spouštění úloh bez stahování souborů. </br> | |||
Příklad pro nastavení v konfigu cronu volání stránky www.mojedomena.cz každých 12 hodin: <code>0 */12 * * * wget --no-check-certificate -q -O /dev/null https://www.mojedomena.cz</code> | |||
--> | |||
Verze z 21. 10. 2025, 12:28
Služba CRON slouží k automatickému spouštění úloh ve zvolený čas. Na hostingu můžete CRON využít například pro periodické volání skriptů, které generují statistiky, uklízejí vyrovnávací paměti redakčních systémů, rozesílají dávkově newslettery a další.
V rámci hostingových služeb můžete používat 2 typy CRONu. První typ si můžete nastavit v administraci hostingu přes webové rozhraní. Druhý typ je pak k dispozici na multihostingu přes SSH přístup standardním systémovým způsobem v příkazové řádce. Tyto CRONy jsou na sobě nezávislé.
Webové rozhraní administrace hostingu
Nejjednodušší a nejrychlejší způsob k zadání automaticky spouštěné úlohy v naplánovaný čas je její zadání přes administraci hostingu. Do té se můžete přihlásit na adrese https://svethostingu.cz/admin/.
V administraci hostingu vyberte vlevo nahoře požadovanou službu a doménu a následně níže položku "CRON".
Přidání úlohy je intuitivní, u každé položky se po najetí ukazatelem myši nad symbol otazníčku zobrazí další nápověda k významu jednotlivých položek. Níže je uveden příklad pro CRON úlohu, která se spustí každý den ve 3 hodiny a 3 minuty ráno a zavolá skript na adrese "www.mojedomena.cz/send.php". Hvězdička označuje, že bude provedena pokaždé pro daný časový úsek. Je-li hvězdička např. u měsíce, bude úloha provedena každý měsíc. Bude-li u měsíce jednička, provede se úloha jen v lednu.
Po přidání se CRON úloha objeví v tabulce "Aktuálně nastavené úlohy".
Příkazová řádka přes SSH přístup
SSH přístup je dostupný na multihostingu a bližší informace ke zřízení a ovládání jsou uvedeny v příslušné kategorii.
V příkazové řádce použijte pro nastavení služby CRON příkaz "crontab". Úplná dokumentace k příkazu je dostupná po zadání "man crontab", rychlou nápovědu pak zobrazíte zadáním "crontab -h".
Zobrazit seznam zadaných úloh tedy můžete příkazem "crontab -l" a editaci úloh pak příkazem "crontab -e". Po zadání všech cron úloh nechte na konci prázdný řádek. Níže je uveden příklad pro přidání CRON úlohy, která každou hodinu v 10. minutě zavolá php interpret a předá mu skript na cestě "~/www/cz/mojedomena/www/send.php". Hvězdička znamená, že se daný časový úsek provede vždy. Když je hvězdička např. u pole pro hodinu, bude se úloha provádět každou hodinu. Pokud bude u hodiny jednička, bude úloha provedena jen v 1 hodinu. Popis jednotlivých polí pro spouštěcí čas CRON úlohy:
1. pole = Minuta (0 – 59)
2. pole = Hodina (0 – 23)
3. pole = Den v měsíci (1 – 31)
4. pole = Měsíc (1 – 12)
5. pole = Den v týdnu (0 = neděle, 1 = pondělí, ..., 6 = sobota) ( 7 = také neděle)
6. pole = Spouštěný příkaz
Pokud před řádek s úlohou umístíte speciální znak "#", bude se požadovat za komentář a nebude se provádět. Doporučujeme na konec seznamu CRON úloh přidat prázdný řádek.
Seznam zadaných úloh si pak můžete zobrazit příkazem "crontab -l".
Cron úlohy lze načítat i ze souboru příkazem "crontab cesta_k_souboru/soubor_s_ulohami". Neupravujte ani nenačítejte přímo pracovní soubory cronu na cestě /disk_1/cron/crontabs.