Kako kreirati i pokrenuti Cron Job-ove u Linux-u
Cron Job je komanda kojom se podešava automatsko izvršavanje nekog procesa u tačno određeno vreme. U pitanju je vrlo korisna alatka koja vam omogućava da pokrenete skoro svaku komandu ili skriptu u određeno vreme ili u nekom određenom intervalu. Mi ćemo u ovom tekstu objasniti kako da pokrenete Cron Job-ove u Linux-u.
Ukratko ćemo se zadržati upravo na automatizaciji procesa. Cron Job omogućava administratorima da automatizuju taskove koji se ponavljaju. Ažuriranja sistema, slanje email-ova, provera dostupnosti sistemskih resursa, i slično. Dakle, štedi vreme i ljudske resurse koji bi bili potrebni za izvršavanje određenih taskova.
Cron je aktivan u pozadini i konstantno proverava /etc/crontab i /etc/cron.*/ fajlove i /var/spool/cron/ direktorijume. Svaki korisnik ima svoj zasebni crontab fajl.
Da biste započeli sa kreiranjem Cron Job-a pre svega treba da se ulogujete na svoj server. Ukoliko je u pitanju lokalni računar, potrebno je samo da se ulogujete i startujete novu sesiju na Terminal-u.
Pre nego nastavimo, potrebno je da prvo objasnimo osnovni format i sintaksu koja se koristi za kreiranje Cron Job-ova (crontab fajl):
Minutes Hours Days Month Dayofweek Username /path-of-command
Evo i kratkog objašnjenja svakog segmenta ove cron tabele:
Minutes: Dozvoljene vrednosti za ovo polje su od 0-59 i korisiti se za podešavanje tačnog minta kada će određeni job biti izvršen
Hours: Dozvoljene vrednosti su od 0-23. Koristi se za podešavanje sata za izvršavanje job-a.
Days: Dozvoljene vrednosti su od 0-31. Koristi se za izvršavanje job-a određenog datuma u nedelji.
Month: Dozvoljene vrednosti su od 0-12. Koristi se za izvršavanje job-a u određenom mesecu u godini.
Dayofweek: Dozvoljene vrednosti su od 0-6. Kao što pretpostavljate 0 je nedelja, a 6 je subota.
Username: Korisničko ime korisnika
/path-of-command: Naziv skripta ili komande koju želite da zakažete da se izvrši u određeno vreme.
Upravljanje Crontab fajlom
Da biste kreirali novi ili izmenili postojeći crontab fajl pokrenite sledeću komandu:
crontab -e
Crontab file će se otvoriti u vašem podrazumevanom tekst editoru, gde ćete zatim moći da dodate ili uklonite određene linije. Nakon što ste ga izmenili, sačuvajte i zatvorite fajl i Cron će se automatski koristiti ta nova podešavanja koja ste uneli u Crontab fajl.
Da biste editovali Crnotab fajl određenog korisnika, unesite sledeću komandu:
crontab -u username -e
Naravno, umesto username potrebno je da koristite korisničko ime onoga čiji je fajl.
Da biste prikazali sadržaj Crontab fajla kucajte:
crontab -l
Da biste uklonili Crontab fajl kucajte ovu komandu:
crontab -r
Time ćete ujedno sprečiti izvršavanje bilo kog job-a koji je povezan sa tim Cronetab fajlom.
Kontrolisanje pristupa Crontab fajlu
Za kontrolisanje pristupa Crontab fajlu korisitite fajlove /etc/cron.d/cron.allow i /etc/cron.d/cron.deny
Na primer, da biste omogućili pristup Crontab fajlu samo za root user-a potrebno je da kreirate novi /etc/cron.d/cron.allow fajl. To radite u tekst editoru. Kucajte prvo:
/etc/cron.d/cron.allow
A zatim dodajte sledeću liniju:
root
Kada završite ne zaboravite da sačuvate fajl. Na ovaj način ste podesili da Crontab fajl od sada može da koristi samo root user.
Primeri Cron Job-ova
Ovde ćemo dati par primera kako da podesite da se neki vaš task pokrene u određenom vremenskom intervalu.
Na primer, možete pokrenuti test.sh skript na svakih 7 minuta svakog sata i svakog dana. Da biste to podesili potrebno je da dodate ovu liniju u vaš Crontab fajl:
*/7 * * * * root /bin/sh /root/test.sh
Da pokrenete isti skript u 15:10 od ponedeljka do četvrtka, potrebno je da u vaš Crontab fajl dodate sledeću liniju:
10 15 * * 1-4 root /bin/sh /root/test.sh
Imajte samo u vidu da je polje Hours u 24-časovnom formatu, pa je potrebno vreme upisivati na taj način (ne 3 popodne nego 15h).
Ukoliko želite da isti skript pokrenete recimo 5. februara u 08:50h, potrebno je da dodate sledeću liniju u Crontab fajl:
50 08 05 02 * root date
Takođe, isti skript možete na primer pokrenuti svakog dana u 09 i u 11h:
00 09,11 * * * root /bin/sh /root/test.sh
Dakle dodavanjem brojeva iza zareza u segmentu HOURS, dodajete nove sate u kojima želite dada izvršite određeni task.
Ukoliko sa druge strane želite da isti skript pokrenete svakog dana u periodu od 10-18h, dodaćete ovu liniju u Crontab fajl:
00 10-18 * * * root /bin/sh /root/test.sh
Takođe, postoje i prečice unutar komandi kojima možete definisati određene akcije. Na primer komanda za pokretanje istog skripta jednom dnevno će izgledati ovako
@daily root /bin/sh /root/test.sh
A komanda za izvršavanje jednom nedeljno, ovako:
@weekly root /bin/sh /root/test.sh
Samo pratite ranije objašnjen format i sintaksna pravila i moćićete uspešno da podesite bilo koju kombinaciju vremena i datuma, za gotovo svaki task koji želite da Cron Job izvrši automatski.
Na taj način ćete uvek jednostavno i brzo kreirati cron job za veš potrebe.

