Executia de proceduri automate: serviciul cron
Serviciul cron (numit uneori si Vixie Cron) este un daemon, creat de Paul Vixie, care executa comenzi în mod programat, la anumite momente de timp.
Pentru a utiliza serviciul cron trebuie instalate pachetele vixie-cron si crontabs, iar serviciul crond sa fie pornit.
Daemonul cron "se trezeste" la fiecare minut, verifica continutul directoarelor:
cron.d: scripturi speciale cron;
cron. houriy: scripturi care vor fi executate din ora în ora;
cron. daiiy: scripturi care vor fi executate zilnic;
cron. weekiy: scripturi care vor fi executate saptamânal;
cron.monthly: scripturi care vor fi executate lunar
si executa scripturile aflate în ele. Se configureaza prin intermediul fisierului /etc/crontab. Acesta contine instructiuni de forma "executa aceasta comanda la momentul specificat". Daca variabila de mediu MAILTO este definita si nu este vida, utilizatorului specificat în aceasta îi va fi trimis un mesaj continând iesirea standard a scriptului.
Scripturile vor fi executate de sub utilizatorul care este proprietarul acestora, în cadrul scripturilor pot fi utilizate comentarii, care trebuie sa înceapa cu caracterul "#". Pot fi definite si variabile de mediu, de forma nume=vaioare.
Serviciul cron jurnalizeaza actiunile executate (lansarea în executie a scripturilor) în genere în fisierul /var/iog/cron.
Fiecare linie din /etc/crontab are forma:
| specificatie__timp utilizator script
unde:
specificatie Jimp contine urmatoarele cinci câmpuri:
minut, putând lua valori între O si 59;
ora, putând lua valori între O si 23;
zi din luna, putând lua valori între l si 31;
luna, putând lua valori între l si 12 sau nume de luna;
zi din saptamâna, putând lua valori între O si 7 (O = duminica) sau nume de
zile.
utilizator este utilizatorul sub care vor fi executate scripturile; script este locatia scriptului care va fi executat.
Setari avansate ale sistemului
Un câmp poate lua valoarea "*", semnificând orice valoare. De asemenea, sunt permise intervale de numere, separate prin "-" (de exemplu 8-10), si liste de valori sau intervale, separate prin virgula (de exemplu 8-12,14,20). Poate fi utilizata si divizarea valorilor, adaugând la interval caracterul "/" si factorul de divizare (spre exemplu, 8-20/2 înseamna între orele 8 si 20, din doua în doua ore).
Un fisier uzual /etc/crontab este furnizat mai jos:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
* * * * root run-parts /etc/cron.hourly
4 * * * root run-parts /etc/cron.daily
22 4 * * O root run-parts /etc/cron.weekly
42 4 l * * root run-parts /etc/cron.monthly
Dupa cum se poate remarca, scripturile din directorul cron.houriy vor fi executate la fiecare ora si l minut, cele din cron.daily - în fiecare zi la ora 4 si 2 minute, cele din cron.weekly - în fiecare duminica la ora 4 si 22 de minute, iar cele din cron.monthly-în ziua de l a fiecarei luni, la ora 4 si 42 de minute. Toate scripturile vor fi executate de sub utilizatorul root.
Pe lânga sistemul cron, pot fi folosite si serviciile anacron si at, care prezinta functiuni similare.
|