cron jobs

Kako kreirati i pokrenuti Cron Job-ove u Linux-u

25 октобра, 2020

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.save your time

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.

Bez komentara

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *