Crearea unui cronjob sau a unei sarcini (și ce puteți face dacă nu rulează)
Cu un cronjob (în DirectAdmin: Cron Jobs) puteți rula automat un script la ore fixe, de exemplu în fiecare noapte. Mai jos aflați cum creați unul și ce puteți face dacă nu funcționează.
Reguli pentru cronjob-uri
- Porniți o sarcină cel mult o dată la 10 minute. Le cerem acest lucru tuturor clienților, deoarece împărțiți serverul cu alte site-uri.
- Distribuiți mai multe cronjob-uri în timp și alegeți o oră liniștită, de exemplu 03:17 în loc de miezul nopții fix.
- Cronjob-urile grele, care solicită serverul o perioadă lungă, nu sunt permise. Pe același server rulează mai multe site-uri. Dacă este necesar, oprim un cronjob. Prin urmare, păstrați sarcinile scurte și nu le rulați mai des decât este necesar.
Crearea unui cronjob
- Autentificați-vă în DirectAdmin și, sub Advanced Features, faceți clic pe Cron Jobs.
- Faceți clic pe Create Cron Job.
- Completați minutul, ora, ziua, luna și ziua din săptămână. Completați întotdeauna minutul cu un număr, 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 dvs. de utilizator DA. - Faceți clic pe Create.

E-mail după fiecare cronjob
Rezultatul unui cronjob este trimis către contul de e-mail implicit al pachetului dvs., consultați Contul de e-mail implicit în DirectAdmin. Puteți trimite rezultatul și către o adresă proprie, cu Send all Cron output to E-Mail. Dacă nu doriți e-mailuri, faceți clic la creare pe Prevent E-Mails 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. Prin urmare, adăugați la începutul scriptului:
$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 dvs. nu rulează?
Verificați aceste puncte pe rând:
- Citiți rezultatul. Eliminați temporar
>/dev/null 2>&1și verificați e-mailul din contul de e-mail implicit sau setați o adresă proprie. Acolo scrie adesea exact ce nu funcționează. Puteți scrie rezultatul și î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ă calea către script nu este corectă. 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 dvs. Dacă scriptul funcționează doar pe o altă versiune, modificați-o la Select PHP version. - Testați comanda manual. Dacă aveți un pachet cu Terminal, lipiți comanda acolo și urmăriți ce se întâmplă, consultați Accesul SSH și Terminalul în DirectAdmin. Fără Terminal, deschideți scriptul în browser sau apelați-l în cronjob prin
curl --silent https://www.jouwdomein.nl/taak.php. - Verificați permisiunile. Scriptul trebuie să poată fi citit: fișierele trebuie să aibă permisiunea 644, iar directoarele 755. Consultați Permisiunile fișierelor și directoarelor (chmod).
- Verificați ora. Verificați la Cronjob will run: dacă sarcina rulează atunci când vă așteptați. Dacă la minut este un asterisc, sarcina rulează în fiecare minut. Aceasta este prea des.
- Verificați cât durează sarcina. Dacă o sarcină durează mult sau pornește din nou înainte ca cea anterioară să se fi terminat, se poate bloca sau poate face ca pachetul dvs. să atingă limitele. În acest caz, împărțiți munca în mai multe runde.
date >> /home/gebruiker/cron-log.txt; înaintea comenzii dvs.Consultați și în ghidul DirectAdmin: Contul de e-mail implicit al pachetului dvs..
Explicații detaliate cu capturi de ecran: Cron Jobs: rularea automată a sarcinilor în ghidul DirectAdmin.
Doriți să aflați mai multe? Urmați gratuit Curs WordPress, lecția 6.3 Imagini, PHP și alte câștiguri de viteză.
