crontab allmighty

Razmjena savjeta i trikova o podešavanju sustava i programa.

Moderator/ica: Moderatori/ce

Odgovori
Avatar
stefan
Moderator
Postovi: 4366
Pridružen/a: 28 sij 2009, 18:46
Spol: M
OS: openSUSE Leap KDE

crontab allmighty

Post Postao/la stefan »

CRON je job scheduler na unixoidnim operativnim sustavima.
Uređivanje job-ova se vrsi preko crontab, konfiguracijskog fajla u kojem se specificiraju chell naredbe i raspored njihovog izvođenja.

Otvaranje konfiguracijskog fajla (tablice) u defaultnom editoru:

Kod: Označi sve

crontab -e
Promjena defaultnog editora u Kate ;):

Kod: Označi sve

export EDITOR=/usr/bin/kate
U fajlu svaka linija predstavlja jedan job - i to tako da prvi dio odredjuje raspored izvodjenja a drugio dio shell skriptu koja predstavlja job.
Postoje dva nacina definiranja rasporeda. Jednostavniji ali i dosta ogranicen vrsi se pomocu preddefiniranih 'termina':

Kod: Označi sve

@daily ~/script.sh
Preddefinirani termini:

Kod: Označi sve

@reboot 	Run once, at startup. 	None
@yearly 	Run once a year 	0 0 1 1 *
@annually 	(same as @yearly) 	0 0 1 1 *
@monthly 	Run once a month 	0 0 1 * *
@weekly 	Run once a week 	0 0 * * 0
@daily 		Run once a day 		0 0 * * *
@midnight 	(same as @daily) 	0 0 * * *
@hourly 	Run once an hour 	0 * * * *

i slozeniji i potpuno fleksibilan i konfigurabilan:

Kod: Označi sve

0 0 * * * ~/script.sh
Ovim nacinom definiramo 5 polja, koja redom predstavljaju:
minute (0 - 59)
hour (0 - 23)
day of month (1 - 31)
month (1 - 12) OR jan,feb,mar,apr ...
day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

Operatori
* znaci "svaki" - sve moguce vrijednosti polja
, je separator u listi
- sluzi za definiranje raspona
/ korak, sluzi za preskakanje

Kod: Označi sve

0 0 * * * ~/script.sh
mozemo prevesti kao "Izvrsi skriptu script.sh u 0 minuta i 0 sati svaki dan u mjesecu, svaki mjesec i svaki dan u tjednu"

Kod: Označi sve

*/5 * * * *  ~/test.pl
"Izvrsi skriptu test.pl svakih 5 minuta svaki sat, svaki dan u mjesecu, svaki mjesec i svaki dan u tjednu"

Kod: Označi sve

0 12 * * 1-5 ~/radno.sh
"Izvrsi skriptu radno.sh u 0 minuta i 12 sati svaki radni dan (od ponedjeljka=1 do petka=5)"

Kod: Označi sve

0 12 * * 1,5 ~/radno.sh
"Izvrsi skriptu radno.sh u 0 minuta i 12 sati ponedjeljkom i petkom)"

Tko vise voli GUI moze sve ovo preko KCRON-a (KDE Task Scheduler)
Like some other animals, the gecko can perform a neat trick when threatened by a predator: it can amputate its own tail. The dropped tail serves to distract the predator, and by losing it, the lizard can run faster.
Odgovori