Vytvorenie cronjobu alebo úlohy (a čo robiť, ak nebeží)
Pomocou cron úlohy (v DirectAdmin: Plánované úlohy) necháte skript automaticky spúšťať v pevne stanovených časoch, napríklad každú noc. Nižšie si prečítate, ako ju vytvoriť a čo robiť, ak nefunguje.
Pravidlá pre cron úlohy
- Pri balíkoch Webhost One a Webhost Two sa môže úloha spustiť najviac raz za 10 minút, platí to pre všetky vaše úlohy dohromady.
- Pri balíkoch Power Webhost môžu úlohy bežať častejšie.
- Viacero cron úloh rozložte v čase a zvoľte pokojný okamih, napríklad 03:17 namiesto presnej polnoci.
- Náročné cron úlohy, ktoré dlho zaťažujú server, nie sú povolené. Na rovnakom serveri beží viac webových stránok. V prípade potreby cron úlohu zastavíme. Udržujte preto svoje úlohy krátke a nespúšťajte ich častejšie, ako je nutné.
Vytvorenie cron úlohy
- Prihláste sa do DirectAdmin a v sekcii Rozšírené funkcie kliknite na Plánované úlohy.
- Kliknite na Vytvoriť úlohu cronu.
- Vyplňte minútu, hodinu, deň, mesiac a deň v týždni. Minútu vždy vyplňte konkrétnym číslom, nie hviezdičkou, inak sa úloha spustí každú minútu.
- Pri príkaze zadajte úplnú cestu, napríklad:
/usr/local/bin/php -q /home/pouzivatel/domains/vasadomena.nl/public_html/uloha.php
Nahraďte pouzivatel vaším DA používateľským menom. - Kliknite na Vytvoriť.

E-mail po každej cron úlohe
Výstup cron úlohy sa odosiela na predvolený e-mailový účet vášho balíka, pozrite si Predvolený e-mailový účet v DirectAdmin. Výstup môžete odosielať aj na vlastnú adresu pomocou Odoslať celý výstup cronu e-mailom. Ak e-mail nechcete, pri vytváraní kliknite na Zabrániť odosielaniu e-mailov, alebo za príkaz pridajte:
>/dev/null 2>&1
Pozor pri PHP skriptoch
Skript spustený z cron úlohy 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ť. Preto na začiatok skriptu vložte:
$pad = '/home/pouzivatel/domains/vasadomena.nl/public_html'; $_SERVER['SERVER_NAME'] = 'vasadomena.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
Cron úloha nefunguje?
Prejdite si tieto body jeden po druhom:
- Prečítajte si výstup. Dočasne odstráňte
>/dev/null 2>&1a pozrite sa do e-mailu na predvolenom e-mailovom účte, alebo nastavte vlastnú adresu. Tam je zvyčajne presne vidieť, čo je zle. Výstup môžete zapisovať aj do logovacieho súboru, ak za príkaz pridáte>> /home/pouzivatel/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ávy súborov: cesta začína na
/home/pouzivatel/domains/. - Skontrolujte verziu PHP. Pri použití
/usr/local/bin/phpúloha používa rovnakú verziu PHP ako vaša webová stránka. Ak váš skript funguje len na inej verzii, upravte to v Select PHP version. - Otestujte príkaz manuálne. Ak máte balík s Terminálom, vložte príkaz tam a sledujte, čo sa stane, pozrite si Otvorenie SSH alebo Terminálu v DirectAdmin. Bez Terminálu otvorte skript vo svojom prehliadači, alebo ho v cron úlohe zavolajte pomocou
curl --silent https://www.vasadomena.nl/uloha.php. - Skontrolujte oprávnenia. Skript musí byť čitateľný: súbory by mali mať nastavené 644 a priečinky 755. Pozrite si Oprávnenia súborov a priečinkov (chmod).
- Skontrolujte čas. V časti Úloha cronu sa vykonáva: si overte, či sa úloha spúšťa vtedy, kedy očakávate. Ak je pri minúte hviezdička, úloha sa spúšťa každú minútu a môže byť zastavená.
- Skontrolujte limit balíka. Ak sa úloha spúšťa častejšie, ako váš balík dovoľuje, alebo trvá príliš dlho, bude prerušená. Rozdeľte vtedy prácu na viacero kôl.
date >> /home/pouzivatel/cron-log.txt;.Pozrite si tiež v návode DirectAdmin: Predvolený e-mailový účet vášho balíka.
Podrobné vysvetlenie so screenshotmi: Plánované úlohy: automatické spúšťanie úloh v návode DirectAdmin.
