Vytvoření cronjobu nebo úlohy (a co dělat, když se nespouští)
Pomocí cronjobu (v DirectAdmin: Cron úlohy) můžete nechat skript automaticky spouštět v pevně stanovených časech, například každou noc. Níže se dočtete, jak cronjob vytvořit a co dělat, když nefunguje.
Pravidla pro cronjoby
- Spouštějte úlohu nejvýše jednou za 10 minut. Žádáme o to všechny zákazníky, protože server sdílíte s dalšími webovými stránkami.
- Rozložte více cronjobů v čase a zvolte klidnou dobu, například 03:17 místo přesné půlnoci.
- Náročné cronjoby, které server dlouho zatěžují, nejsou povoleny. Na stejném serveru běží více webových stránek. V případě potřeby cronjob zastavíme. Udržujte proto své úlohy krátké a nespouštějte je častěji, než je nutné.
Vytvoření cronjobu
- Přihlaste se do DirectAdmin a v sekci Pokročilé funkce klikněte na Cron úlohy.
- Klikněte na Vytvořit Cron úlohu.
- Vyplňte minutu, hodinu, den, měsíc a den v týdnu. U minuty nikdy nezadávejte pouze hvězdičku, jinak se úloha spustí každou minutu. Použijte číslo nebo například
*/15pro spuštění každých 15 minut. - U příkazu zadejte úplnou cestu, například:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Nahraďte gebruiker svým uživatelským jménem v DA. - Klikněte na Vytvořit.

E-mail po každém cronjobu
Výstup cronjobu se odesílá do výchozího e-mailového účtu Vašeho balíčku, viz Výchozí e-mailový účet v DirectAdmin. Výstup můžete také odesílat na vlastní adresu pomocí Odesílat veškerý výstup cronu na e-mail. Pokud e-maily dostávat nechcete, klikněte při vytváření na Zabránit e-mailům, nebo za příkaz přidejte:
>/dev/null 2>&1
Pozor u PHP skriptů
Skript spouštěný z cronjobu neví, pod jakou doménou běží. $_SERVER['SERVER_NAME'] a $_SERVER['DOCUMENT_ROOT'] jsou prázdné a include s relativní cestou může selhat. Na začátek skriptu proto vložte:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
WordPress: WP-Cron přes skutečný cronjob
WordPress má vlastní plánovač WP-Cron pro úlohy, jako jsou naplánované příspěvky, kontrola aktualizací a úlohy pluginů. Ten neběží v pevně stanovených časech, ale pouze tehdy, když někdo navštíví Váš web. Při nízké návštěvnosti se pak úlohy zpožďují a při vysoké návštěvnosti každá návštěva stojí trochu času navíc. S běžným cronjobem běží WP-Cron v pevně stanovených okamžicích.
- Do souboru
wp-config.phpvložte nad řádek/* That's all, stop editing! */:define( 'DISABLE_WP_CRON', true );
- V Cron úlohy vytvořte úlohu, která poběží například každých 15 minut: u minuty zadejte
*/15a u hodiny, dne, měsíce a dne v týdnu hvězdičku. Příkaz:/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/wp-cron.php >/dev/null 2>&1
Pokud je WordPress v podsložce, uveďte ji v cestě. - Následující den ve WordPressu v sekci Nástroje › Stav webu zkontrolujte, zda se nezobrazují upozornění na zpožděné naplánované úlohy.
I zde dodržujte spouštění nejvýše jednou za 10 minut. Pro většinu webů stačí každých 15 nebo 30 minut.
Váš cronjob neběží?
Projděte postupně tyto body:
- Přečtěte si výstup. Dočasně odstraňte
>/dev/null 2>&1a podívejte se na e-mail ve výchozím e-mailovém účtu, nebo nastavte vlastní adresu. Často se tam přesně dočtete, co je špatně. Výstup můžete také zapisovat do souboru protokolu tak, že za příkaz přidáte>> /home/gebruiker/cron-log.txt 2>&1. - Zkontrolujte cestu. Hlášení Could not open input file znamená, že cesta ke skriptu není správná. Podívejte se do Správce souborů: cesta začíná
/home/gebruiker/domains/. - Zkontrolujte verzi PHP. S
/usr/local/bin/phppoužívá úloha stejnou verzi PHP jako Váš web. Pokud Váš skript funguje pouze na jiné verzi, změňte ji v Select PHP version. - Otestujte příkaz ručně. Pokud máte balíček s Terminalem, vložte příkaz tam a sledujte, co se stane, viz Přístup SSH a Terminal v DirectAdmin. Bez Terminalu otevřete skript v prohlížeči, nebo jej v cronjobu zavolejte pomocí
curl --silent https://www.jouwdomein.nl/taak.php. - Zkontrolujte oprávnění. Skript musí být čitelný: soubory by měly mít oprávnění 644 a složky 755. Viz Oprávnění souborů a složek (chmod).
- Zkontrolujte čas spuštění. V části Cron úloha se spouští: ověřte, zda úloha běží tehdy, kdy předpokládáte. Pokud je u minuty hvězdička, spouští se každou minutu. To je příliš často.
- Zkontrolujte, jak dlouho úloha trvá. Pokud úloha trvá dlouho nebo se spustí znovu dříve, než skončí ta předchozí, může se zaseknout nebo způsobit, že Váš balíček narazí na své limity. Rozdělte v takovém případě práci do více kol.
date >> /home/gebruiker/cron-log.txt;.Viz také v příručce k DirectAdmin: Výchozí e-mailový účet Vašeho balíčku.
Podrobný návod se snímky obrazovky: Cron úlohy: automatické spouštění úloh v příručce k DirectAdmin.
Chcete se dozvědět více? Absolvujte bezplatný kurz WordPressu, lekci 6.3 Obrázky, PHP a další zrychlení.
