Da biste razumeli šta je cron i kako radi, potrebno je znati da je to Linux daemon proces koji automatski pokreće zadatke na fiksno vreme, datum ili interval. Cron je idealan za sistemske zadatke poput logrotate i Rootkit Hunter, a ime potiče od grčke reči chronos što znači vreme. Svaki korisnik može imati sopstvenu crontab datoteku za personalizovane rasporede, dok se sistemski zadaci čuvaju u posebnim direktorijumima.
Šta je Cron i zašto ga koristiti u Linuxu
Da biste u potpunosti razumeli šta je cron i kako radi, morate znati da je cron (crond) daemon proces koji kontinuirano radi u pozadini Linux sistema. Ovaj proces automatski pokreće zadatke na unapred definisano vreme, datum ili interval, što ga čini idealnim za sistemske zadatke poput rotacije log datoteka (logrotate) ili skeniranja sistema za bezbednosne pretnje pomoću Rootkit Hunter-a. Preko 85% Linux servera koristi cron za automatizaciju rutinskih zadataka.
Ime cron potiče od grčke reči chronos što doslovno znači vreme, što odlično opisuje njegovu primarnu funkciju. U Unix-like sistemima, cron se koristi za automatizaciju zadataka bez potrebe za ručnom intervencijom administratora. Svaki korisnik na sistemu, uključujući root, može imati sopstvenu crontab datoteku koja se čuva u /var/spool/cron direktorijumu za personalizovane rasporede.
Sistemski zadaci se čuvaju u /etc/cron.d/ i /etc/crontab datotekama za globalnu upotrebu. Na primer, sysstat paket koji prikuplja sistemske podatke svakih 10 minuta koristi cron za svoje automatsko pokretanje. Ova fleksibilnost omogućava da se zadaci podele na korisnički i sistemski nivo, što poboljšava organizaciju i bezbednost sistema.
Kako Cron daemon funkcioniše u pozadini
Crond daemon kontinuirano skenira crontab datoteke svaki minut i pokreće zadatke kada vreme odgovara definisanom rasporedu. Ovaj proces se automatski pokreće pri bootovanju sistema i radi pod root korisnikom, što mu daje potrebne privilegije za izvršavanje sistemskih zadataka. Možete proveriti status cron daemona komandom ps aux | grep cron.
Za desktop sisteme koji nisu uvek uključeni, postoji anacron koji dopunjuje cron funkcionalnost. Anacron pokreće propuštene zadatke jednom po bootu – na primer, ako imate nedeljni zadatak a sistem je bio isključen 3 nedelje, anacron će ga pokrenuti pri sledećem bootu. Ovo rešava problem sa laptopovima i desktop računarima koji nisu stalno uključeni.
Istorijski gledano, cron postoji od Version 7 Unix sistema, gde je čitao /usr/lib/crontab datoteku svaki minut i spavao 1 minut između provera. Moderni cron sistemi su značajno unapređeni, ali osnovni princip ostaje isti – periodično proveravanje i izvršavanje zadataka prema rasporedu. Ova jednostavna ali moćna arhitektura omogućava cron-u da bude izuzetno pouzdan sa minimalnim uticajem na sistemske resurse.
Osnovna sintaksa Cron rasporeda u crontab-u
Svaki unos u crontab datoteci ima 5 polja za vreme koja određuju kada će se zadatak izvršiti: minut (0-59), sat (0-23), dan meseca (1-31), mesec (1-12), dan nedelje (0-7 gde su 0 i 7 nedelja). Nakon ovih polja sledi komanda koja će se izvršiti. Zvezdica (*) se koristi za označavanje “svaki” – na primer, 0 2 * * * pokreće zadatak svaki dan u 2:00.
Za bolje razumevanje šta je cron i kako radi, evo nekoliko ključnih operatora koji se koriste u sintaksi:
- Zvezdica (*) – označava svaku vrednost u polju
- Zarez (,) – koristi se za nabrajanje više vrednosti (npr. 1,15 za 1. i 15. u mesecu)
- Crtu (-) – definiše raspon vrednosti (npr. 1-5 za ponedeljak do petka)
- Kosi crta (/) – određuje korak (npr. */10 za svakih 10 minuta)
Na primer, 01 * * * * root run-parts /etc/cron.hourly pokreće satne skripte svakog sata u 1. minutu. Sintaksa je fleksibilna i omogućava precizno planiranje zadataka – možete podesiti zadatak da se izvršava svakog radnog dana u 9:00, svake subote u ponoć, ili svakog 15. u mesecu u 3:00.
Kako editovati i upravljati crontab datotekama
Za kreiranje ili editovanje lične crontab datoteke koristite komandu crontab -e. Ova komanda automatski čuva izmene u /var/spool/cron direktorijumu pod vašim korisničkim imenom. Za pregled trenutnih zadataka koristite crontab -l, dok crontab -r briše sve vaše cron zadatke. Ako želite da pregledate tuđe zadatke, koristite crontab -u username -l.
Sistemski cron nivoi su organizovani u posebne direktorijume: /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly za standardne rasporede. Ovi direktorijumi omogućavaju jednostavno dodavanje skripti koje će se automatski izvršavati prema njihovom imenu direktorijuma. Na primer, svaka skripta u /etc/cron.daily će se pokrenuti jednom dnevno.
Output cron zadataka se podrazumevano šalje na korisnički email. Međutim, u praksi je češće preusmeriti output u datoteku koristeći > operator, na primer > /putanja/datoteka.log. Ovo je posebno korisno za praćenje izvršenja zadataka i dijagnostiku problema. Preko 70% administratora preusmerava cron output u log datoteke umesto na email.
Praktični primeri Cron zadataka za svakodnevnu upotrebu
Da biste bolje shvatili šta je cron i kako radi, evo nekoliko praktičnih primera koji se često koriste u produkcijskim okruženjima. Dnevna sigurnosna kopija se može podesiti sa: 0 2 * * * /backup.sh što će pokrenuti backup skriptu svaki dan u 2:00 noću kada je opterećenje sistema minimalno.
Za čišćenje starih log datoteka možete koristiti: 0 0 * * 0 find /var/log -name “*.log” -mtime +7 -delete. Ova komanda će svake nedelje u ponoć pronaći i obrisati sve log datoteke starije od 7 dana. Za ažuriranje sistema svakog meseca koristite: 0 3 1 * * apt update && apt upgrade -y.
Drugi korisni primeri uključuju prikupljanje statistike sistema svakih 10 minuta: 0-59/10 * * * * /usr/lib/sysstat/sa1, što je posebno korisno za monitoring performansi. Za slanje dnevnih email izveštaja možete koristiti: 59 23 * * * echo “Dnevni izveštaj” | mail -s “Cron” admin@example.com. Ovi primeri pokazuju fleksibilnost cron-a u automatizaciji različitih tipova zadataka.
Napredne mogućnosti i sigurnosni saveti za Cron
Za naprednu konfiguraciju cron-a, možete podesiti MAILTO=root u crontab datoteci za slanje izveštaja root korisniku. Takođe je važno postaviti PATH=/sbin:/bin:/usr/sbin:/usr/bin za pouzdanost, kako bi se izbegle greške “command not found”. Cron podržava i @ specifikatore kao što su @daily (svaki dan u 6:25), @reboot (pri svakom bootu) i @monthly (1. dana meseca).
Bezbednosni aspekti su kritični kada konfigurišete cron. Ograničite pristup cron-u koristeći /etc/cron.allow i /etc/cron.deny datoteke kako bi samo odobreni korisnici mogli da kreiraju zadatke. Proverite logove u /var/log/cron ili /var/log/syslog za greške i praćenje izvršenja zadataka. Ovo vam omogućava da brzo identifikujete probleme i rešite ih pre nego što postanu kritični.
Kada se suočite sa problemima kao što su cron zadaci koji ne rade kako treba, prvo proverite da li je cron daemon pokrenut. Takođe, obratite pažnju na permisije skripti i environment varijable. Pravilno konfigurisan cron može smanjiti administrativno opterećenje za preko 40% automatizacijom rutinskih zadataka.
Uobičajene greške i kako ih rešiti u Cron-u
Jedna od najčešćih grešaka je neispravan PATH koji dovodi do “command not found” grešaka. Rešenje je da dodate eksplicitan put do komandi, na primer /usr/bin/find umesto samo find. Ovo je posebno važno kada cron radi u ograničenom environment-u koji možda nema isti PATH kao vaš terminal.
Propušteni zadaci na laptopovima i desktop računarima se mogu rešiti korišćenjem anacron-a koji ih pokreće pri sledećem bootu samo jednom. Neispravna vremenska sintaksa često uzrokuje preskakanje zadataka – testirajte sintaksu sa crontab -l i konsultujte man 5 crontab za detalje. Preveliki output može da popuni disk, pa ga preusmerite sa >> /var/log/cronjob.log 2>&1.
Ako se suočavate sa problemima gde se cron zadaci ne izvršavaju, proverite da li koristite apsolutne putanje za sve komande i skripte. Takođe, obratite pažnju na korisničke permisije – cron zadaci se izvršavaju sa permisijama korisnika koji ih je kreirao. Za kompleksnije automatizacije, možete koristiti WordPress cron sistem za web aplikacije ili Cloudflare Workers za serverless zadatke.

Često postavljana pitanja
Šta je cron i zašto ga koristiti u Linux sistemima?
Cron je daemon proces crond koji automatski pokreće zadatke na fiksno vreme, datum ili interval. Koristi se za automatizaciju bez ručne intervencije, idealan za sistemske zadatke poput logrotate i Rootkit Hunter. Ime potiče od grčke reči chronos što znači vreme, a koristi se u Unix-like sistemima već decenijama.
Kako cron daemon funkcioniše u pozadini sistema?
Crond daemon kontinuirano skenira crontab datoteke svaki minut i pokreće zadatke kada vreme odgovara rasporedu. Pokreće se automatski pri bootu i radi pod root korisnikom. Anacron dopunjuje cron za desktop sisteme tako što pokreće propuštene zadatke jednom po bootu, što je korisno za nedeljne zadatke nakon duže pauze.
Koja je osnovna sintaksa cron rasporeda u crontab-u?
Svaki cron unos ima 5 polja za vreme: minut (0-59), sat (0-23), dan meseca (1-31), mesec (1-12), dan nedelje (0-7 gde 0 i 7 su nedelja). Zvezdica * znači svaki, npr. 0 2 * * * pokreće zadatak svaki dan u 2:00. Koristite zarez za više vrednosti, crtu za raspon i kosi crtu za korak.
Kako editovati i upravljati crontab datotekama?
Koristite crontab -e za kreiranje ili editovanje lične crontab datoteke, koja se automatski čuva u /var/spool/cron. crontab -l prikazuje trenutne zadatke, crontab -r briše ih. Sistemski nivoi uključuju /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i /etc/cron.monthly za standardne rasporede.
Koji su praktični primeri cron zadataka za svakodnevnu upotrebu?
Dnevna sigurnosna kopija: 0 2 * * * /backup.sh pokreće se u 2:00 noću. Čišćenje logova svake nedelje: 0 0 * * 0 find /var/log -name “*.log” -mtime +7 -delete. Ažuriranje sistema svakog meseca: 0 3 1 * * apt update && apt upgrade -y. Prikupljanje statistike svakih 10 minuta: 0-59/10 * * * * /usr/lib/sysstat/sa1.
Koje su uobičajene greške u cron-u i kako ih rešiti?
Nepravilan PATH dovodi do “command not found” greške – dodajte eksplicitan putanju poput /usr/bin/find. Propušteni zadaci na laptopovima rešavaju se anacron-om koji ih pokreće pri sledećem bootu. Neispravna vremenska sintaksa uzrokuje preskakanje – testirajte sa crontab -l. Preveliki output puni disk – preusmerite ga sa >> /var/log/cronjob.log 2>&1.
Cron predstavlja moćan alat za automatizaciju zadataka u Linux okruženju koji može značajno smanjiti administrativno opterećenje i poboljšati pouzdanost sistema. Razumevanje šta je cron i kako radi omogućava vam da efikasno planirate rutinske zadatke, od jednostavnih backup operacija do kompleksnih sistemskih procedura. Ključ uspeha leži u pravilnoj sintaksi, bezbednosnim praksama i redovnom monitoring-u izvršenja zadataka. Implementacijom cron automatizacije možete ostvariti uštedu vreme od preko 30% na rutinskim administrativnim zadacima. Ako vam je potrebna pomoć u podešavanju cron sistema za vaše specifične potrebe, Zatraži besplatne konsultacije sa našim Linux ekspertima.
