Crearea unui Cron Job personalizat pe Linux

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

Ce este o lucrare Cron?

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

  • Ușor

  • Extrem de personalizabil

  • Integrat în majoritatea distribuțiilor Linux

Cazuri comune de utilizare

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

  • Rularea scripturilor PHP/Python

  • Rotația jurnalelor și curățarea fișierelor temporare

  • Trimiterea de e-mailuri programate

  • Actualizarea cașelor 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 rădăcină (necesită sudo):
sudo crontab -e

Pasul 2: Defalcarea sintaxei cron

Fiecare cron job utilizează 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: Rulează un script în fiecare zi la ora 2 AM

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

Pasul 3: Crearea unui script personalizat

Să presupunem că doriți să rulați un script Python personalizat. Mai întâi, creați fișierul:

nano /home/user/scripts/cleanup.py

Exemplu de script:

#!/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

Modificați crontab și adăugați:

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

Aceasta:

  • Rulează scriptul zilnic la 1:00 AM

  • Înregistrează rezultatele în /var/log/cleanup.log

Exemple de cazuri de utilizare

✅ Executare la fiecare 10 minute

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

✅ Rulați numai lunea la ora 3 AM

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

Dezactivarea sau eliminarea unui Cron Job

Dezactivați temporar o linie prin comentarea ei cu #.

Pentru a elimina toate lucrările:

crontab -r

Lucrările cron personalizate sunt un instrument puternic pentru automatizare, întreținere și fiabilitate. Indiferent dacă gestionați un VPS personal, implementați scripturi backend sau executați sarcini de lucru de producție, stăpânirea cron vă permite să controlați când și cum se execută sarcinile – fără efort.