HOGYAN Használjuk a Cron-t automatizálásra?
A Gentoo Linux Wiki wikiből
Tartalomjegyzék |
[szerkesztés] Bevezetés
A cron egy feladatütemező program, ami minden (valamirevaló) UNIX rendszeren megtalálható. Segítségével előre megadott időközönként futtathatunk parancsokat, mint például adatbázis frissítés, rendszermentés készítése, vagy akár egy emerge --sync.
[szerkesztés] Telepítés
Ha minden igaz, a Gentoo telepítése során mindenki felrak valamilyen cron daemont. Ha ez mégsem törént meg, a Protageban több lehetőségből is választhatunk:
A fentiek kis eltérésekkel ugyan azon funkciókkal rendelkeznek. !! FIXME !!
A telepítés a szokásos emerge paranccsal történik:
| Kód: vixie-cron telepítése |
# emerge vixie-cron # rc-update add vixie-cron default |
[szerkesztés] A crontab
A crontab az a táblázat, ami alapján a feladatütemező dolgozik, ebben megadhatjuk mit és mikor/milyen időközönként szeretnénk futtatni.
A crontab felépítése a következő:
| File: crontab |
# perc (0-59), # | óra (0-23), # | | hónap napja (1-31), # | | | hónap (1-12), # | | | | hét napja (0-6 with 0=Sunday). # | | | | | parancs(ok) # | | | | | | */5 * * * * fetchmail -aKv -m "/usr/bin/procmail -d %T" >/dev/null 2>&1 |
A / jel a fenti példában azt jelenti, hogy a parancs minden 5 percben lefut egyszer.
[szerkesztés] Root crontabja
Az egész rendszerre kiterjedő automatizálásokat a root felhasználó crontabja tartalmazza.
Szerkeszteni a
# crontab -e
paranccsal lehet (természetesen root-ként).
[szerkesztés] Felhasználó crontabja
Minden felhasználónak lehet külön crontabja, amit ő maga tud szerkeszteni. Ehhez a cron csoporthoz kell tartozni a usernek. Rendszeradminisztrátorként a lenti paranccsal adhatunk felhasználót a csoporthoz:
# gpasswd -a felhasználó cron
Ezután a saját crontab szerkesztéséhez a
$ crontab -e
parancsot kell kiadni, vagy az adminisztrátor maga is megváltoztathatja más felhasználók tábláját:
# crontab -u felhasználó -e
[szerkesztés] A másik megoldás
A legtöbb cron daemon létrehoz a /etc könyvtárban néhány mappát:
/etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly
Ezek a nevüknek megfelelően, bizonyos id¿közönként ellenőrizve vannak, és a bennük található állományok lefutnak. Ilyen módon például a napi szinkronizálás is megoldható:
| File: /etc/cron.daily/portage.cron |
#! /bin/sh /usr/bin/emerge --sync |
Az állomány elkészítése után futtathatóvá kell azt tenni:
# chmod +x /etc/cron.daily/portage.cron
A fileok, amiket a fenti könyvtárakban létrehozunk, nem konfigurációs fileok, hanem shell scriptek. Ilyenformán nem csak egy sort tartalmazhatnak, hanem hosszabb, összetettebb parancsokat is. Bővebben lásd a HOGYAN Írjunk BASH szkripteket? cikket.
