Crearea unui cronjob sau a unei sarcini programate (și ce să faceți dacă nu se execută)
Cu ajutorul unui cronjob (în DirectAdmin: Cron Jobs), puteți face ca un script să ruleze automat la ore fixe, de exemplu în fiecare noapte. Mai jos aflați cum creați unul și ce faceți dacă nu funcționează.
Reguli pentru cronjob-uri
- La Webhost One și Webhost Two, o sarcină poate porni cel mult o dată la 10 minute, pentru toate sarcinile dumneavoastră împreună.
- La pachetele Power Webhost, sarcinile pot rula mai des.
- Distribuiți mai multe cronjob-uri în timp și alegeți o oră liniștită, de exemplu 03:17 în loc de exact miezul nopții.
- Cronjob-urile grele, care încarcă serverul pentru o perioadă lungă, nu sunt permise. Pe același server rulează mai multe site-uri web. Dacă este necesar, oprim un cronjob. Prin urmare, păstrați sarcinile scurte și nu le lăsați să ruleze mai des decât este necesar.
Crearea unui cronjob
- Conectați-vă la DirectAdmin și faceți clic, la Funcții Avansate, pe Cron Jobs.
- Faceți clic pe Creare Cron Job.
- Completați minutul, ora, ziua, luna și ziua săptămânii. Introduceți întotdeauna minutul cu o cifră, nu cu un asterisc, altfel sarcina va rula în fiecare minut.
- La comandă, introduceți calea completă, de exemplu:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Înlocuiți gebruiker cu numele dumneavoastră de utilizator DA. - Faceți clic pe Creare.

E-mail după fiecare cronjob
Rezultatul unui cronjob este trimis la adresa de e-mail implicită a pachetului dumneavoastră, consultați Contul de e-mail implicit în DirectAdmin. De asemenea, puteți trimite rezultatul la o adresă proprie cu Trimitere toate rezultatele cron la e-mail. Dacă nu doriți e-mailuri, faceți clic la creare pe Prevenire e-mailuri, sau adăugați după comandă:
>/dev/null 2>&1
Atenție la scripturile PHP
Un script care rulează dintr-un cronjob nu știe sub ce domeniu rulează. $_SERVER['SERVER_NAME'] și $_SERVER['DOCUMENT_ROOT'] sunt goale, iar un include cu o cale relativă poate eșua. De aceea, adăugați la începutul scriptului dumneavoastră:
$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());
Cronjob-ul dumneavoastră nu rulează?
Parcurgeți aceste puncte unul câte unul:
- Citiți rezultatul. Eliminați temporar
>/dev/null 2>&1și verificați e-mailul din contul de e-mail implicit, sau configurați o adresă proprie. Acolo se află adesea exact ce nu funcționează. De asemenea, puteți scrie rezultatul într-un fișier jurnal adăugând după comandă>> /home/gebruiker/cron-log.txt 2>&1. - Verificați calea. Mesajul Could not open input file înseamnă că traseul către script este incorect. Verificați în File Manager: calea începe cu
/home/gebruiker/domains/. - Verificați versiunea PHP. Cu
/usr/local/bin/php, sarcina folosește aceeași versiune PHP ca site-ul dumneavoastră web. Dacă scriptul dumneavoastră funcționează doar cu o altă versiune, ajustați acest lucru la Select PHP version. - Testați comanda manual. Dacă aveți un pachet cu Terminal, lipiți comanda acolo și observați ce se întâmplă, consultați Deschiderea SSH sau a Terminalului în DirectAdmin. Fără Terminal, deschideți scriptul în browser, sau îl apelați în cronjob prin
curl --silent https://www.jouwdomein.nl/taak.php. - Verificați permisiunile. Scriptul trebuie să fie lizibil: fișierele trebuie să fie setate la 644, iar directoarele la 755. Consultați Permisiunile fișierelor și directoarelor (chmod).
- Verificați ora. Verificați la Cronjob este executat: dacă sarcina rulează atunci când credeți. Dacă la minut apare un asterisc, sarcina rulează în fiecare minut și poate fi oprită.
- Verificați limita pachetului. Dacă sarcina rulează mai des decât permite pachetul dumneavoastră sau durează prea mult, aceasta va fi întreruptă. Distribuiți atunci lucrul pe mai multe runde.
date >> /home/gebruiker/cron-log.txt; înaintea comenzii dumneavoastră.Consultați și în manualul DirectAdmin: Contul de e-mail implicit al pachetului dumneavoastră.
Explicații detaliate cu capturi de ecran: Cron Jobs: rularea automată a sarcinilor în manualul DirectAdmin.
