3..2..1...start! - A cron
2005/03/18 16:01
856 megtekintés
A cikk már legalább egy éve nem frissült, az akkor még aktuális információk lehet, hogy mára elavultak.
Minden rendszerben vannak olyan feladatok, amelyeket előre meghatározott, esetleg rendszeresen ismétlődő időben kell futtatni. Ehhez nyújt segítséget számunkra a cron.

A Linuxszal ismerkedő rendszergazdák első meglepetései között az a jelenség szerepel, amikor a gép látszólag minden indok nélkül elkezd kerregni, dolgozni, a rendszer lelassul, láthatóan dolgozik valamin. Nos, nem ördögi jelensége állnak a háttérben, hanem a Linux/Unix egyik igen kellemes szolgáltatása, a cron dolgozik. A cron segít nekünk abban, hogy önálló programokat, kisebb-nagyobb scripteket előre meghatározott időpontban, napi, heti vagy havi rendszerességgel futtassunk.
Minden rendszerre a telepítéskor felkerül a cront tartalmazó csomag. Jelenlétét az /etc könyvtárban található cron.d, cron.daily, cron.monthly, cron.weekly könyvtárak is jelzik, melyek több-kevesebb file-t tartalmaznak. Ezen kívül az /etc könyvárban találunk egy crontab nevű file-t, melynek tartalma a következő (SuSE 9.1-en):

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
14 4 * * * root rm -f /var/spool/cron/lastrun/cron.daily
29 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
44 4 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly

E file tartalma szabályozza az óránként, naponta, hetente és havonta időzített feladatokat tartalmazó könyvárak tartalmának végrehajtását.Az első oszlopban található számok és csillagok értelmezését itt kell megejtenünk, ugyanis ezekkel szabályozzuk a végrehajtást. Az első oszlopban található érték adjhatjuk meg a végrehajtás idejének percét, a második oszlopban az óráját, a harmadikban a napot, majd a hónap és a hét egy napja jön. Ezután következik maga a parancs. Nézzünk pár példát:

15 * * * * /usr/bin/start
* 8 * * * /usr/bin/start
0 11 * * mon /usr/bin/start

Az első sor minden minden óra 15. percében lefuttatja a /usr/bin/start parancsot. A második sor ugyanezt teszi minden nap 8 órakor, míg a harmadik példában minden hétfőn 11 órakor kerül a programunk végrehajtásra.
Az időpontokat megadhatjuk pl. /2 formátumban is, ez minden második időpontot jelzi. Néhány cron-bejegyzés A /etc/cron* könyvtárakban található scripteket megnézve láthatjuk, hogy rendszerünk bizony unalmas óráiban sem tétlenkedik: rendszeresen lefutnak a naplófile-okat karbantartó, a levelezőrendszerhez tartozó és egyéb időzítő alkalmazások is.
Természetesen nem csak a rendszergazda kiváltsága a cron használata, akár felhasználóink is kezelhetik saját bejegyzéseiket. Ehhez a crontab -e parancsra van szükségünk, mely az alapértelmezett editorral (a legtöbb helyen ez a vi) nyitja meg a felhasználó crontab állományát. Az állomány tartalmát kilistázni a crontab -l, míg törölni a crontab -r paranccsal lehet.

Béres László
beres@bkf.hu

Csatlakozz hozzánk!

Ajánljuk

European Schoolnet Academy Ingyenes online tanfolyamok tanároknak
School Education Gateway Ingyenes tanfolyamok és sok más tanárok számára
ENABLE pilot Program iskoláknak a bullying ellen
eBiztonság Minősítés Minősítési rendszer oktatási intézményeknek