Alege planul

Cron jobs:sarcini programate în cPanel

Cum programezi din cPanel un script PHP sau o adresă web să ruleze automat, cu exemple pentru WordPress și soluții când nu rulează.

  • Actualizat
ghid · avansat
Pași
13
Citești în
4min
Secțiuni
4
Începe ghidul

Un cron job e o comandă pe care serverul o rulează singur, la ore stabilite de tine: la fiecare 15 minute, în fiecare noapte sau o dată pe săptămână. Îl folosesc magazinele online, modulele de newsletter, sincronizările de stoc și WordPress, pentru articolele programate.

Ce vei reuși

  • adaugi, modifici și ștergi un cron job din cPanel;
  • rulezi un script PHP cu aceeași versiune de PHP ca site-ul;
  • alegi dacă primești sau nu email cu rezultatul fiecărei rulări.

Înainte să începi

  • Planurile noastre nu au acces SSH, dar cron jobs merg. Serverul le rulează într-un mediu restrâns, special pentru ele.
  • Îți trebuie calea completă a scriptului. Directorul tău e /home/UTILIZATOR: îl vezi pe pagina principală cPanel, în panoul „General Information”, la Director de pornire (Home Directory). Site-ul principal e în /home/UTILIZATOR/public_html.
  • Vezi ce versiune de PHP folosește site-ul (8.2 sau 8.3) în Software » „MultiPHP Manager” (vezi Versiunea PHP și setările PHP (MultiPHP)).
  • Orele sunt cele ale României, pentru că serverul e setat pe ora Bucureștiului.

Denumirile din acest ghid sunt cele din cPanel în limba română, cu varianta în engleză în paranteză. Unele ecrane nu sunt traduse și apar în engleză; pe acelea le scriem între ghilimele.

Pașii

  1. Mergi la Avansat » Operațiuni cron (Advanced » Cron Jobs).
  2. La E-mail cron (Cron Email) scrie adresa pe care vrei rezultatul fiecărei rulări și apasă Actualizare e-mail (Update Email). La început e util: vezi imediat dacă scriptul dă erori.
  3. La Adăugare operațiune cron nouă (Add New Cron Job), alege cât de des rulează din Setări comune (Common Settings). De exemplu: O dată la 15 minute, O dată pe oră sau O dată pe zi. Câmpurile Minut, Oră, Ziua, Lună și Zi din săptămână se completează singure. Le poți modifica și de mână: pentru ora 3:00 noaptea pui Oră = 3 și Minut = 0.
  4. La Comandă (Command) scrie comanda. Găsești exemple mai jos.
  5. Apasă butonul Adăugare operațiune cron nouă.
  6. Cron job-ul apare în lista Operațiuni cron curente (Current Cron Jobs). Ca să-l modifici, apeși Editare (Edit), faci schimbările și apeși Editare linie (Edit Line). Ca să-l ștergi, apeși Ștergere (Delete).

Exemple de comenzi

În exemple, înlocuiește UTILIZATOR cu utilizatorul tău cPanel și calea cu cea reală.

Un script PHP, rulat cu PHP 8.3:

/usr/local/bin/ea-php83 /home/UTILIZATOR/public_html/cron.php

Pentru PHP 8.2 scrii ea-php82. Folosește aceeași versiune ca site-ul, cea din „MultiPHP Manager”. Pe pagina Operațiuni cron, la „PHP command examples”, cPanel îți arată și un exemplu completat deja cu directorul tău.

O adresă web, pentru modulele care îți dau un link de cron:

/usr/bin/curl -s "https://domeniul-tau.ro/cale/catre/cron" > /dev/null 2>&1

WordPress, cu un cron real în locul celui pornit de vizitatori:

  1. Deschide wp-config.php și, deasupra rândului care începe cu /* That's all, stop editing!, adaugă:
    define( 'DISABLE_WP_CRON', true );
  2. Adaugă un cron job cu frecvența O dată la 15 minute și comanda:
    /usr/bin/wget -q --delete-after https://domeniul-tau.ro/wp-cron.php > /dev/null 2>&1

Dacă site-ul are multe sarcini programate, cum ar fi un magazin cu multe comenzi, alege O dată la 10 minute.

Fără email la fiecare rulare

Ca să nu mai primești email de la un anumit cron job, adaugă > /dev/null 2>&1 la sfârșitul comenzii, ca în exemplele de mai sus. Ca să nu mai primești de la niciunul, șterge adresa de la E-mail cron și salvează.

Poți păstra și un jurnal într-un fișier, în loc de email. Adaugă la sfârșitul comenzii >> /home/UTILIZATOR/cron.log 2>&1. Golește fișierul din când în când, pentru că altfel crește și îți ocupă spațiu.

Câteva reguli bune

  • Rulează sarcina doar cât de des ai nevoie. Pentru majoritatea site-urilor ajunge o dată la 15 minute. O rulare pe minut încarcă serverul degeaba.
  • Lasă destul timp între rulări, ca una să se termine înainte să înceapă următoarea.
  • Scrie căile complete, de la /home/UTILIZATOR/..., nu căi relative.
  • Ai mare grijă cu comenzile care șterg fișiere (rm): cu o cale greșită poți șterge tot site-ul.

Dacă ceva nu merge

  1. Cron job-ul nu rulează deloc. Verifică ora (serverul folosește ora României) și calea, care trebuie să înceapă cu /home/. Pune-ți temporar adresa la E-mail cron și scoate > /dev/null 2>&1 din comandă: emailul primit îți arată eroarea.
  2. În email scrie „Permission denied”. Probabil ai scris doar calea scriptului. Pune în fața ei programul care îl rulează, de exemplu /usr/local/bin/ea-php83 /home/UTILIZATOR/....
  3. Apar erori PHP ciudate, deși site-ul merge. Cron job-ul rulează cu altă versiune de PHP decât site-ul. Scrie ea-php82 sau ea-php83, după cum arată „MultiPHP Manager”.
  4. Primești prea multe emailuri. Adaugă > /dev/null 2>&1 la sfârșitul comenzii sau șterge adresa de la E-mail cron.
  5. Site-ul se mișcă greu la anumite ore. Probabil două sarcini grele pornesc în același timp sau rulează prea des. Programează-le la ore diferite, noaptea, și rulează-le mai rar.
Suport

Te-ai blocat? Îl facem împreună.

Scrie-ne ce pas nu merge și, dacă se poate, trimite o captură de ecran. Îți răspundem în programul de lucru.

Telefon și WhatsApp+40 775 396 021
Programluni – vineri, 9:00 – 18:00

Nu ne trimite niciodată parola pe WhatsApp sau pe email. Ce informații ne ajută să rezolvăm din prima: cum ceri ajutor.