`cron` je Linux servis koji omogućava automatizaciju zadataka u tačno određeno vrijeme. Administratori ga koriste za backup, čišćenje logova, monitoring sistema i mnoge druge zadatke. U ovom članku prikazujemo 25 praktičnih `cron` komandi koje bi svaki Linux admin trebao znati.
Kako izgleda format jednog cron zadatka?
* * * * * komanda
│ │ │ │ │
│ │ │ │ └── dan u sedmici (0-7)
│ │ │ └──── mjesec (1-12)
│ │ └────── dan u mjesecu (1-31)
│ └──────── sat (0-23)
└────────── minuta (0-59)
1. Uređivanje cron zadataka
Primjer komande sa sintaksom:
$crontab -e
Otvara crod editor za trenutnog korisnika.
2. Pregled cron zadataka
Primjer komande sa sintaksom:
$crontab -l
Prikazuje sve aktivne cron zadatke.
3.Prikazuje sve aktivne cron zadatke
Primjer komande sa sintaksom:
$crontab -r
Briše sve cron unose.
4. Crontab za drugog korisnika (root)
Primjer komande sa sintaksom:
$crontab -u user -e
Administracija cron zadataka drugih korisnika.
== Praktični cron primjeri – realni scenariji - ==
1. Pokretanje skripte svake minute
Primjer komande sa sintaksom:
$* * * * * /home/user/script.sh
Koristi se za česte provjere (monitoring).
2. Svakih 5 minuta (najčešći slučaj)
Primjer komande sa sintaksom:
$*/5 * * * * /home/user/script.sh
Idealno za health-check skripte.
3. Svakih sat vremena
Primjer komande sa sintaksom:
$0 * * * * /home/user/script.shPokreće se na početku svakog sata.
4. Svaki dan u ponoć
Primjer komande sa sintaksom:
$0 0 * * * /home/user/daily.sh
Standard za dnevne zadatke.
5. Backup svaki dan u 2 ujutro
Primjer komande sa sintaksom:
$0 2 * * * /backup/backup.sh
Pravi backup skripte svaki dan u 2 ujutro.
6. Svaki ponedjeljak u 3 ujutro
Primjer komande sa sintaksom:
$0 3 * * 1 /home/user/weekly.sh
Za sedmične zadatke.
7. Prvi dan u mjesecu
Primjer komande sa sintaksom:
$0 4 1 * * /home/user/monthly.sh
Mjesečni izvještaji ili cleanupi.
8. Samo radnim danima
Primjer komande sa sintaksom:
$0 9 * * 1-5 /home/user/work.sh
Radni raspored (pon – pet).
9. Svakih 30 minuta
Primjer komande sa sintaksom:
$*/30 * * * * /home/user/script.sh
Pokreće cron zadatak svakih 30 minuta.
10. Tačno u 14:30
Primjer komande sa sintaksom:
$30 14 * * * /home/user/script.sh
Pokreće cron zadatak tačno u 14:30.
11. Brisanje logova starijih od 30 dana
Primjer komande sa sintaksom:
0 1 * * * find /var/log -name "*.log" -mtime +30 -delete
Šta radi:
Svaki dan u 01:00 briše sve .log datoteke starije od 30 dana.
Objašnjenje:
0 1* * *→ svaki dan u 1:00find /var/log→ pretraga log direktorija-name "*.log"→ samo log fajlovi-mtime +30→ stariji od 30 dana-delete→ briše ih
Kada koristiti:
✔ serveri sa puno logova
✔ automatizacija održavanja
12. Backup sa timestampom
Primjer komande sa sintaksom: $0 2 * * * tar -czf /backup/home-$(date +\%F).tar.gz /home
Šta radi:
Svaki dan u 02:00 pravi backup /home direktorija sa datumom u nazivu.
Objašnjenje:
tar -czf→ kompresovani backup$(date +%F)→ format datuma (YYYY-MM-DD)\%F→ escape jer cron tretira%posebno
Kada koristiti:
✔ dnevni backup
✔ audit i restore scenariji
13. Logovanje izlaza skripte
Primjer komande sa sintaksom:
$*/5 * * * * /script.sh >> /var/log/script.log 2>&1
Šta radi:
Pokreće skriptu svakih 5 minuta i zapisuje sve u log.
Objašnjenje:
>>→ dodaje output u fajl2>&1→ preusmjerava greške u isti log
Kada koristiti:
✔ debugging
✔ produkcija (uvijek!)
14. Slanje email notifikacije
Primjer komande sa sintaksom:
$0 8 * * * echo "Report ready" | mail -s "Daily Report" admin@example.com
Šta radi:
Svaki dan u 08:00 šalje email administratoru.
Objašnjenje:
echo→ sadržaj porukemail -s→ subject emaila
Kada koristiti:
✔ izvještaji
✔ alerting sistemi
⚠️ zahtijeva konfigurisan mail server
15. Restart servisa
Primjer komande sa sintaksom:
$0 3 * * * systemctl restart nginx
Šta radi:
Restartuje servis svaki dan u 03:00.
Objašnjenje:
koristi se za:
memory leak
reset servisa
Kada koristiti:
✔ legacy aplikacije
✔ workaround rješenja
16. Monitoring diska
Primjer komande sa sintaksom:
$*/10 * * * * df -h | grep -v tmpfs >> /var/log/disk.log
Šta radi:
Svakih 10 minuta zapisuje stanje diska.
Objašnjenje:
df -h→ disk usagegrep -v tmpfs→ uklanja virtualne filesysteme
Kada koristiti:
✔ analiza problema
✔ monitoring bez alata
17. Automatski update sistema
Primjer komande sa sintaksom:
$0 4 * * * apt update && apt upgrade -y
Šta radi:
Svaki dan u 04:00 ažurira sistem.
Objašnjenje:
apt update→ lista paketaapt upgrade -y→ instalacija
Kada koristiti:
✔ test serveri
✔ development okruženje
18. Provjera uptime-a
Primjer komande sa sintaksom:
$*/5 * * * * uptime >> /var/log/uptime.log7
Šta radi:
Zapisuje uptime svakih 5 minuta.
Objašnjenje:
uptime→ koliko dugo sistem radi
Kada koristiti:
✔ analiza restartova
✔ monitoring stabilnosti
19. Pokretanje Python skripte
Primjer komande sa sintaksom:
$*/15 * * * * /usr/bin/python3 /home/user/script.py
Šta radi:
Pokreće Python skriptu svakih 15 minuta.
Objašnjenje:
koristi se apsolutna putanja
cron nema isti PATH kao terminal
Kada koristiti:
✔ automatizacija
✔ scraping
✔ API taskovi
20. Čišćenje /tmp direktorija
Primjer komande sa sintaksom:
$0 0 * * * rm -rf /tmp/*
Šta radi:
Briše sve iz /tmp svaki dan u ponoć.
Objašnjenje:
rm -rf→ prisilno brisanje/tmp/*→ sve datoteke
Kada koristiti:
✔ server cleanup
BONUS: Kako napisati Bash skriptu i automatizirati je pomoću cron-a (korak po korak)
U ovom primjeru ćemo:
✔ napraviti jednostavnu Bash skriptu
✔ dati joj dozvole za izvršavanje
✔ testirati je
✔ automatizirati pomoću cron
🎯 Scenario
Napravit ćemo skriptu koja:
provjerava zauzeće diska
zapisuje rezultat u log fajl
1. Kreiranje Bash skripte
Komanda sa sintaksom:
$nano /home/amar/disk_check.sh
Kreira datoteku po imenu ‘disk_check.sh’.
2. Sadržaj skripte
#!/bin/bash
LOG_FILE="/home/amar/disk_usage.log"
echo "===== $(date) =====" >> $LOG_FILE
df -h >> $LOG_FILE
echo "" >> $LOG_FILE
Objašnjenje skripte
#!/bin/bash→ definiše interpreterLOG_FILE→ lokacija log fajladate→ dodaje timestampdf -h→ prikazuje zauzeće diska>>→ dodaje (append) u fajl
3. Dodjela dozvole za izvršavanje
Komanda sa sintaksom:
$chmod +x /home/amar/disk_check.sh
4. Testiranje skripte (OBAVEZNO)
Komanda sa sintaksom:
$./disk_check.sh
Provjera statusa skripte komandom:
$cat /home/amar/disk_usage.log
5. Automatizacija pomoću cron-a
Komanda sa skriptom:
$crontab -e
Otvara crontab editor.
6. Dodavanje cron zadatka
Komanda sa sintaksom:
$*/10 * * * * /home/amar/disk_check.sh
Pokreće skriptu svakih 10 minuta.
7. Provjera da li cron radi
Komanda sa sinstaksom:
$tail -f /home/amar/disk_usage.log
Možemo vidjeti da je skripta ‘disk_check.sh’ uspješno automatizirana kroz cron komandu, te će ista da prikazuje stanje diska svakih 10 minuta, a rezultat spremati u datoteku ‘disk_usage.log’.
⚠️ Najvažniji savjeti
✔ uvijek koristi apsolutne putanje
✔ uvijek testiraj skriptu prije cron-a
✔ koristi log fajlove za debugging
✔ provjeri permisije (chmod +x)
Zaključak
cron nije samo alat za zakazivanje komandi — to je temelj automatizacije u Linux administraciji. Sve što se ponavlja na serveru (backup, čišćenje logova, monitoring, restart servisa) može i treba biti automatizirano.
Kroz ovaj članak vidjeli smo:
kako funkcioniše
crontabi njegov formatkako pisati jednostavne i napredne cron izraze
kako automatizirati realne administratorske zadatke
kako kombinovati
cronsa alatima poputfind,tar,dfi Bash skripti
Ključ uspjeha u radu sa cron-om nije samo u pisanju komandi, nego u:
✔ razumijevanju šta se izvršava
✔ testiranju prije produkcije
✔ logovanju rezultata
✔ oprezu sa destruktivnim komandama










Jako koristan članak i dobro odrađen.
OdgovoriIzbriši