One poslove koje su korisnici Windowsa obavljali preko Task Schedulera, korisnici Unix-like sistema mogu da obave preko Cron-a.
Cron, dakle, omogućava zakazivanje poslova (dakle, određenih komandi/skripti) u određeno vreme i, takođe, omogućava periodično izvršavanje tih poslova.
Crontab (Cron table) je tekstualna datoteka, u koju dodajemo Cron unose i naznačavamo u koje periode će se pokrenuti određeni unos.
Alat se koristi za održavanje sistema, administraciju sistema i drugih poslova.
Cron se automatski pokrece sa lokacije: /etc/init.d i traži crontab-ove unutar [izvor: link ] :
spool oblast: /var/spool/cron/crontabs
// ucitavaju se u memoriju
* crontab-ovima, u ovoj oblasti, se ne treba direktno pristupati, vec preko crontab komande.
Lokacija: /etc/crontab
// ovde dolaze u obzir i podfolderi: 'cron.hourly', 'cron.daily', 'cron.weekly' i 'cron.monthly'. Ukoliko stavimo skript unutar jednog od ovih direktorijuma, skript će se pokretati svakog časa, dana, sedmično ili mesečno, respektivno.
* ovim unosima se može direktno pristupati
* Datoteka /etc/crontab je "system wide", dakle, na nivou celog sistema, za sve korisnike i ovoj datoteci mogu pristupiti samo administratori.
Lokacija: /etc/cron.d
Svaki korisnik mašine može da ima svoje crontabove (osim ukoliko to nije zabranjeno od strane administratora. Videti sekciju "ostalo").
Lokacija datoteke iz foldera etc:
Primer upotrebe: LINK
Crontab komanda ima sledeće parametre:
Citat: crontab -e --> izmena crontab datoteke ili kreacija nove (ako ista ne postoji)
crontab -l --> prikaz sadržaja crontab datoteke.
crontab -r --> uklanjanje crontab datoteke.
crontab -u --> privilegovani korisnici mogu da koriste ovu opciju da menjaju crontab drugih korisnika. Više o tome: link.
U literaturi se pominje da na nekim mašinama postoji i crontab -v , koji prikazuje vreme zadnje izmene crontab fajla; ja ovaj switch nemam.
Upotreba crontaba
Iz primera se može videti sledeći unos u crontab-u:
05 0 * * * root /root/scripts/sarg.daily
15 1 * * 1 root /root/scripts/sarg.weekly
0 2 1 * * root /root/scripts/sarg.monthly
Da bi rastumačili šta znače ove vrednosti, kreirao sam sledeću sliku:
Prakticni primeri i objašnjenja se mogu sagledati iz ove slike:
Iz primera se može videti da su dozvoljeni karakteri "," i "-", gde zarezom označavamo više pokretanja u specifična vremena, a crticom kontinuitet u izvršavanju (videti primere).
Ostalo:
Ukoliko želite da komanda crontab -e pokrene neki drugi editor (po default je "vi"), kucajte:
Citat:export EDITOR=nano
crontab -e
Da vratite na "vi" - export EDITOR=vi
Ukoliko želite da kontrolišete ko ima pristup cron-u. Moguce je koristiti jednu od ovih datoteka, ili obe:
- Datoteka: /etc/cron.allow
- Datoteka: /etc/cron.deny
// potrebno je uneti ime korisnika u odgovarajucu datoteku.
Primeri:
echo ALL >>/etc/cron.deny //zabranjuje cron svim korisnicima
echo bocke >>/etc/cron.allow //bocke može da koristi blagodeti cron-a
Po defaultu, Cron šalje email korisniku koji izvršava neki cron posao.
Moguće je onemogućiti slanje mail-a, na kraju komande je neophodno uneti: >/dev/null 2>&1 .
// ( više informacija )
|