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


Megjegyzés:
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.


[szerkesztés] Linkek

http://www.gentoo.org/doc/en/cron-guide.xml

Személyes eszközök
Más nyelveken