// server management

Cum configurezi Cron Jobs pe un VPS Linux: ghid complet pentru automatizarea sarcinilor

August 25, 2026 · by Alex M.

Cum configurezi Cron Jobs pe un VPS Linux: ghid complet pentru automatizarea sarcinilor

Administrarea unui server presupune o serie de sarcini repetitive: backup-uri zilnice, curățarea fișierelor temporare, trimiterea de rapoarte, actualizarea bazelor de date. Făcute manual, acestea consumă timp și sunt predispuse la erori. Soluția elegantă se numește cron — un planificator de sarcini integrat în orice distribuție Linux.

În acest ghid, vei învăța pas cu pas cum să configurezi cron jobs pe un VPS Linux — de la sintaxa de bază până la exemple avansate, jurnalizare și depanare.


Ce este cron și cum funcționează?

Cron este un daemon (serviciu de fundal) care rulează continuu și verifică dacă există sarcini planificate de executat. Sarcinile sunt definite în fișiere speciale numite crontab (cron table).

Fiecare utilizator Linux poate avea propriul crontab, iar sistemul are și un crontab global în /etc/crontab. Daemonul cron citește aceste fișiere și execută comenzile la momentele stabilite.

Verifică dacă cron rulează

systemctl status cron        # Debian/Ubuntu
systemctl status crond       # CentOS/AlmaLinux/Rocky

Dacă serviciul nu este activ, pornește-l:

systemctl enable --now cron

Sintaxa unui cron job

Fiecare linie dintr-un crontab respectă formatul:

* * * * * /calea/catre/comanda
│ │ │ │ │
│ │ │ │ └── Ziua săptămânii (0-7, unde 0 și 7 = duminică)
│ │ │ └──── Luna (1-12)
│ │ └────── Ziua lunii (1-31)
│ └──────── Ora (0-23)
└────────── Minutul (0-59)

Operatori utili

Operator Semnificație Exemplu
* Orice valoare * * * * * = în fiecare minut
, Listă de valori 0 9,18 * * * = la 09:00 și 18:00
- Interval 0 9-17 * * * = în fiecare oră între 9 și 17
/ Pas */15 * * * * = la fiecare 15 minute

Editarea crontab-ului

Pentru a edita crontab-ul utilizatorului curent:

crontab -e

Pentru a vizualiza sarcinile existente:

crontab -l

Pentru a edita crontab-ul unui alt utilizator (ca root):

crontab -u www-data -e

Sfat: La prima editare, sistemul te va întreba ce editor preferi. Alege nano dacă ești începător — este mai simplu decât vim.


Exemple practice de cron jobs

1. Backup zilnic al bazei de date MySQL

0 2 * * * /usr/bin/mysqldump -u root -pPAROLA_TA baza_de_date > /backup/db_$(date +\%Y\%m\%d).sql

Acest job rulează în fiecare noapte la ora 02:00 și salvează un dump al bazei de date. Pe un VPS NVMe, vei beneficia de viteză ridicată la scriere, reducând durata backup-ului.

2. Curățarea fișierelor temporare vechi

0 3 * * 0 /usr/bin/find /tmp -type f -mtime +7 -delete

Rulează în fiecare duminică la 03:00 și șterge fișierele din /tmp mai vechi de 7 zile.

3. Reîncărcarea certificatelor SSL

0 0 1 * * /usr/bin/certbot renew --quiet && systemctl reload nginx

Verifică și reînnoiește certificatele SSL în prima zi a fiecărei luni. Util dacă folosești Let's Encrypt.

4. Trimiterea unui raport zilnic de utilizare a discului

0 8 * * * /usr/bin/df -h | /usr/bin/mail -s "Raport disk $(hostname)" [email protected]

5. Rularea unui script PHP (WordPress, de exemplu)

*/5 * * * * /usr/bin/php /var/www/html/wp-cron.php > /dev/null 2>&1

WordPress are propriul sistem de cron bazat pe vizitatori. Este recomandat să dezactivezi WP-Cron intern și să folosești cron-ul sistemului pentru mai multă fiabilitate — mai ales pe un hosting WordPress dedicat.


Variabile de mediu în crontab

Cron rulează cu un mediu minimal — nu moștenește variabilele shell ale utilizatorului. De aceea, comenzile trebuie specificate cu căi absolute.

Poți defini variabile global în crontab:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
[email protected]
  • MAILTO — adresa la care se trimite output-ul comenzilor (poate fi setată la "" pentru a dezactiva emailurile).
  • PATH — căile în care cron caută comenzi.

Jurnalizarea output-ului

Implicit, cron trimite output-ul prin email (dacă sendmail este configurat). O practică mai bună este redirecționarea output-ului în fișiere de log:

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  • >> adaugă output-ul la sfârșitul fișierului (nu îl suprascrie).
  • 2>&1 redirecționează și erorile în același fișier.

Pentru a evita fișiere de log prea mari, combină cron cu logrotate — un alt instrument esențial pentru administrarea serverelor Linux.


Cron la nivel de sistem: /etc/cron.d și directoarele cron.*

Pe lângă crontab-ul utilizatorilor, Linux oferă directoare predefinite:

Director Frecvență
/etc/cron.hourly/ Orar
/etc/cron.daily/ Zilnic
/etc/cron.weekly/ Săptămânal
/etc/cron.monthly/ Lunar

Pentru a adăuga un script care rulează zilnic, copiază-l în /etc/cron.daily/ și asigură-te că are permisiunea de execuție:

chmod +x /etc/cron.daily/myscript.sh

Fișierele din /etc/cron.d/ au sintaxă completă de crontab (cu câmpul utilizatorului):

0 4 * * * root /usr/local/bin/cleanup.sh

Securizarea cron jobs

Cron poate fi un vector de atac dacă nu este configurat corespunzător. Iată câteva bune practici:

  1. Nu rula scripturi ca root fără necesitate. Folosește utilizatori cu privilegii minime.
  2. Verifică permisiunile scripturilor. Un script cu chmod 777 poate fi modificat de oricine.
    bash chmod 700 /usr/local/bin/backup.sh chown root:root /usr/local/bin/backup.sh
  3. Nu stoca parole în crontab. Folosește fișiere de configurare cu permisiuni restrictive (ex. ~/.my.cnf pentru MySQL).
  4. Restricționează accesul la cron prin fișierele /etc/cron.allow și /etc/cron.deny.
  5. Monitorizează log-urile cron:
    bash grep CRON /var/log/syslog # Ubuntu/Debian grep CRON /var/log/cron # CentOS/AlmaLinux

Pe un server dedicat administrat, aceste aspecte sunt gestionate de echipa noastră de specialiști.


Depanarea cron jobs care nu funcționează

Un cron job care nu se execută poate avea mai multe cauze:

  • Cale greșită: Verifică că folosești căi absolute pentru toate comenzile.
  • Permisiuni: Scriptul trebuie să fie executabil (chmod +x script.sh).
  • Variabile de mediu lipsă: Adaugă source ~/.bashrc la începutul scriptului sau definește PATH în crontab.
  • Erori de sintaxă: Verifică sintaxa cu crontab -l și testează comanda manual în terminal.
  • Serviciul cron nu rulează: Verifică cu systemctl status cron.
# Test rapid: rulează comanda manual ca utilizatorul cron
su -s /bin/bash www-data -c "/usr/bin/php /var/www/html/script.php"

Instrumente alternative: systemd timers

Sistemele moderne Linux (Ubuntu 20.04+, AlmaLinux 8+) oferă systemd timers ca alternativă mai puternică la cron. Acestea permit:

  • Execuție la intervale relative (ex. „la 5 minute după boot").
  • Integrare cu journald pentru loguri centralizate.
  • Dependențe între servicii.

Totuși, pentru cazuri uzuale, cron rămâne simplu, portabil și complet suficient.


Concluzie

Cron jobs sunt un instrument fundamental pentru orice administrator de server. Cu o configurare corectă, poți automatiza backup-uri, mentenanță, rapoarte și mult mai mult — reducând erorile umane și economisind ore de muncă.

Dacă vrei un mediu Linux performant și stabil pentru sarcinile tale automate, VPS-urile NVMe CLIQHOST oferă resurse dedicate, viteze ridicate de I/O și acces root complet. Ai nevoie de ajutor cu configurarea serverului? Echipa noastră de administrare servere este la dispoziția ta — contactează-ne oricând.

SHARE
// ce spun clienții

Ce spun clienții noștri

Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău