Vytvorenie cronjobu alebo úlohy (a čo robiť, keď sa nespúšťa)
Pomocou cronjobu (v DirectAdmin: Cron Jobs) môžete skript automaticky spúšťať v pevne stanovených časoch, napríklad každú noc. Nižšie sa dočítate, ako cronjob vytvoriť a čo robiť, ak nefunguje.
Pravidlá pre cronjoby
- Úlohu spúšťajte najviac raz za 10 minút. Žiadame o to všetkých, pretože server zdieľate s inými webovými stránkami.
- Viac cronjobov rozložte v čase a zvoľte pokojný čas, napríklad 03:17 namiesto presnej polnoci.
- Náročné cronjoby, ktoré dlho zaťažujú server, nie sú povolené. Na tom istom serveri beží viac webových stránok. V prípade potreby cronjob zastavíme. Úlohy preto udržujte krátke a nespúšťajte ich častejšie, než je nutné.
Vytvorenie cronjobu
- Prihláste sa do DirectAdmin a v časti Advanced Features kliknite na Cron Jobs.
- Kliknite na Create Cron Job.
- Vyplňte minútu, hodinu, deň, mesiac a deň v týždni. Pri minúte nikdy nezadávajte iba hviezdičku, inak sa úloha spustí každú minútu. Použite číslo alebo napríklad
*/15pre spúšťanie každých 15 minút. - Do príkazu zadajte úplnú cestu, napríklad:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Výraz gebruiker nahraďte svojím používateľským menom v DA. - Kliknite na Create.

E-mail po každom cronjobe
Výstup cronjobu sa odosiela do predvoleného e-mailového účtu vášho balíka, pozrite Predvolený e-mailový účet v DirectAdmin. Výstup môžete posielať aj na vlastnú adresu pomocou Send all Cron Output to E-Mail. Ak e-maily nechcete dostávať, kliknite pri vytváraní na Prevent Email alebo za príkaz pridajte:
>/dev/null 2>&1
Pozor pri PHP skriptoch
Skript spúšťaný z cronjobu nevie, pod akou doménou beží. $_SERVER['SERVER_NAME'] a $_SERVER['DOCUMENT_ROOT'] sú prázdne a include s relatívnou cestou môže zlyhať. Na začiatok skriptu preto 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 cez skutočný cronjob
WordPress má vlastný plánovač WP-Cron pre úlohy, ako sú naplánované príspevky, kontrola aktualizácií a úlohy pluginov. Nespúšťa sa v pevných časoch, ale iba vtedy, keď niekto navštívi váš web. Pri nízkej návštevnosti sa preto úlohy oneskorujú a pri vysokej návštevnosti každá návšteva trvá o niečo dlhšie. Pomocou bežného cronjobu sa WP-Cron spúšťa v pevne stanovených časoch.
- Do súboru
wp-config.phpnad riadok/* That's all, stop editing! */vložte:define( 'DISABLE_WP_CRON', true );
- V Cron Jobs vytvorte úlohu, ktorá sa spúšťa napríklad každých 15 minút: pri minúte zadajte
*/15a pri hodine, dni, mesiaci a dni v týždni hviezdičku. Príkaz:/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/wp-cron.php >/dev/null 2>&1
Ak je WordPress nainštalovaný v podpriečinku, doplňte ho do cesty. - Na druhý deň vo WordPresse v časti Nástroje › Stav webu skontrolujte, či sa nezobrazujú upozornenia na oneskorené naplánované úlohy.
Aj tu dodržujte limit najviac raz za 10 minút. Pre väčšinu webov stačí spúšťanie každých 15 alebo 30 minút.
Váš cronjob sa nespúšťa?
Prejdite tieto body jeden po druhom:
- Prečítajte si výstup. Dočasne odstráňte
>/dev/null 2>&1a pozrite si e-mail v predvolenom e-mailovom účte, prípadne nastavte vlastnú adresu. Často je v ňom presne uvedené, čo je zle. Výstup môžete zapisovať aj do log súboru tak, že za príkaz pridáte>> /home/gebruiker/cron-log.txt 2>&1. - Skontrolujte cestu. Hlásenie Could not open input file znamená, že cesta k skriptu nie je správna. Pozrite sa do správcu súborov (File Manager): cesta začína
/home/gebruiker/domains/. - Skontrolujte verziu PHP. S
/usr/local/bin/phpúloha používa rovnakú verziu PHP ako váš web. Ak váš skript funguje iba na inej verzii, zmeňte ju v Select PHP version. - Otestujte príkaz ručne. Ak máte balík s Terminálom, vložte príkaz tam a sledujte, čo sa stane, pozrite Prístup cez SSH a Terminál v DirectAdmin. Bez Terminálu otvorte skript v prehliadači alebo ho v cronjobe zavolajte pomocou
curl --silent https://www.jouwdomein.nl/taak.php. - Skontrolujte oprávnenia. Skript musí byť čitateľný: súbory majú mať oprávnenia 644 a priečinky 755. Pozrite Oprávnenia súborov a priečinkov (chmod).
- Skontrolujte čas spustenia. Pri Cron Job Executes: overte, či sa úloha spúšťa vtedy, keď očakávate. Ak je pri minúte hviezdička, spúšťa sa každú minútu. To je príliš často.
- Skontrolujte, ako dlho úloha trvá. Ak úloha trvá dlho alebo sa spustí znova skôr, než predchádzajúca skončí, môže sa zaseknúť alebo spôsobiť, že váš balík narazí na svoje limity. V takom prípade rozdeľte prácu do viacerých kôl.
date >> /home/gebruiker/cron-log.txt;.Pozrite aj v príručke DirectAdmin: Predvolený e-mailový účet vášho balíka.
Podrobné vysvetlenie so snímkami obrazovky: Cron Jobs: automatické spúšťanie úloh v príručke DirectAdmin.
Chcete sa dozvedieť viac? Absolvujte bezplatný kurz WordPressu, lekcia 6.3 Obrázky, PHP a ďalšie zrýchlenie webu.
