Uređivanje crontab-a
Cron je alatka koja omogućava automatsko izvršavanje poslova (programa) u pozadini u određenim vremenskim intervalima od strane cron demona. Ovi poslovi se obično zovu cron poslovi.
Crontab je fajl u kome se nalaze ti poslovi izlistani sa određenim vremenom ili intervalom izvršavanja.
U ovom članku ću ukratko opisati kako se uređuje taj fajl.
Pre svega treba znati da, što se tiče vixiecrona, a ne Dillonovog koji se koristi u većini modernih distribucija, možete koristiti crontab ukoliko se vaše korisničko ime nalazi u fajlu /usr/lib/cron/cron.allow. Ukoliko taj fajl ne postoji, možete koristiti crontab ukoliko se vaše ime ne nalazi u fajlu /usr/lib/cron/cron.deny. Ukoliko postoji samo cron.deny, ali je prazan, svi korisnici mogu da koriste crontab. Ukoliko ne postoji nijedan fajl, niko sem root-a ne može da ga koristi.
Komande
export EDITOR=vi
Ovim određujete koji će se editor koristi za uređivanje crontaba. Vi je podrazumevan, a ja, na primer, volim da stavim Emacs. Vi ovde stavite šta vama odgovara.
crontab -e Uređivanje crontab fajla, a ako ne postoji, biće napravljen.
crontab -l Prikaz crontaba.
crontab -d Uklanjanje crontab fajla.
Sintaksa fajla
* * * * * komanda koja će se izvršiti
- - - - -
| | | | |
| | | | +----- dan nedelje (0 - 6) (nedelja=0)
| | | +------- mesec (1 - 12)
| | +--------- dan mesec (1 - 31)
| +----------- sat (0 - 23)
+------------- minut (0 - 59)
Kolone sa vrednostima za vreme mogu sadržati i * ili listu elemenata koji su razdvojeni zarezima.
Primeri
Brisanje fajlova iz /user/tmp direktorijuma svaki dan u 17:15 sati:
15 17 * * * rm /user/tmp/*
Menjanjem parametara za vreme mogu se dobiti sledeći intervali:
01:30 svakog prvog januara, juna i decembra:
30 1 1 1,6,12 *
U 08:00 svakog radnog dana, ali samo u oktobru:
0 20 * 10 1-5
U ponoć svakog 1, 10, 15 i 25. u mesecu:
0 0 1,10,15,25 * *
U 15:05 i 15:10 svakog ponedeljka i svakog 10. u mesecu:
5,10 15 10 * 1
Isključivanje slanja rezultata na e-poštu
Podrazumevano, cron rezultate svakog posla šalje na e-poštu koja je određena MAILTO parametrom unutar crontaba ili na e-poštu korisnika čiji je crontab. Ukoliko to nije potrebno, a često nije, preusmerite sve rezultate na sledeći način tako što ćete dodati na kraj svake komande koja treba da se izvrši:
> /dev/null 2>&1
Log fajl svih cron poslova
Ukoliko želite da skupljate logove svih cron poslova, što nekada može biti korisno u svrhe traženja grešaka ili iz ljubavi prema verovatno besmislenom tekstu, to možete uraditi tako što ćete na kraj svake komande koja treba da se izvrši dodati:
> /home/user/logovi/cron.log
Korisni intervali
Pored intervala koji se zadaju brojevima, postoji još nekoliko vrlo zgodnih:
@reboot Pokreni jednom, pri pokretanju računara.
@yearly Pokreni jednom godišnje, isto što i "0 0 1 1 *".
@monthly Pokreni jednom mesečno, isto što i "0 0 1 * *".
@weekly Pokreni jednom nedeljno, isto što i "0 0 * * 0".
@daily Pokreni jednom dnevno, isto što i "0 0 * * *".
@hourly Pokreni svakog sata, isto što i "0 * * * *".
Šta dalje?
Ovo je samo kratko uputstvo za crontab, a ukoliko vam treba više informacija, pogledajte man stranicu za crontab i potražite na Internetu opširnija uputstva. Naravno da crontab krije još mnogo interesantnih osobina.Дејства на документ