Crearea unui Cron Job Personalizat pe Linux

Automatizarea sarcinilor de rutină este esențială în orice administrare a sistemelor sau flux de lucru în dezvoltarea web. Cron jobs oferă un programator de sarcini puternic, bazat pe timp, în sistemele de operare de tip Unix, permițându-vă să rulați scripturi sau comenzi automat la intervale programate.

Ce este un Cron Job?

Un cron job este o sarcină programată definită în crontab-ul sistemului (tabelul cron) care execută comenzi sau scripturi la ore sau intervale specificate. Cron este utilizat pe scară largă deoarece este:

  • Ușor

  • Foarte personalizabil

  • Integrat în majoritatea distribuțiilor Linux

Cazuri de utilizare comune

  • Backup-uri de bază de date zilnice sau săptămânale

  • Rularea scripturilor PHP/Python

  • Rotirea log-urilor și curățarea fișierelor temporare

  • Trimiterea de emailuri programate

  • Actualizarea cache-urilor de date sau sincronizarea fișierelor

Pasul 1: Accesați Crontab

Pentru a edita crontab-ul utilizatorului dvs. (fără acces root):

crontab -e
Pentru a edita crontab-ul root (necesită sudo):
sudo crontab -e

Pasul 2: Descompunerea sintaxei Cron

Fiecare cron job folosește următorul format:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

Exemplu: Rulați un script în fiecare zi la 2 AM

0 2 * * * /home/user/scripts/backup.sh

Pasul 3: Creați un Script Personalizat

Să presupunem că doriți să rulați un script Python personalizat. În primul rând, creați fișierul:

nano /home/user/scripts/cleanup.py

Script de exemplu:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Faceți scriptul executabil:

chmod +x /home/user/scripts/cleanup.py

Pasul 4: Adăugați Cron Job-ul

Editează crontab-ul tău și adaugă:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Acest lucru:

  • Rulează scriptul zilnic la 1:00 AM

  • Loghează ieșirea în /var/log/cleanup.log

Exemple de cazuri de utilizare

✅ Rulează la fiecare 10 minute

*/10 * * * * /home/user/check_status.sh

✅ Rulează doar lunea la 3 AM

0 3 * * 1 /home/user/scripts/weekly_report.sh

Dezactivarea sau eliminarea unui Cron Job

Dezactivați temporar o linie comentând-o cu #.

Pentru a elimina toate sarcinile:

crontab -r

Cron jobs personalizate sunt un instrument puternic pentru automatizare, întreținere și fiabilitate. Indiferent dacă gestionați un VPS personal, desfășurați scripturi de backend sau rulați sarcini de lucru în producție, stăpânirea cron vă permite să controlați când și cum sarcinile rulează — fără efort.