A cron(8) a FreeBSD egyik leghasznosabb segédprogramja. A cron segédprogram a háttérben fut és folyamatosan figyeli az /etc/crontab állományt. Emellett a cron új crontab állományok után kutatva folyamatosan ellenőrzi a /var/cron/tabs könyvtárat. Ezek a crontab állományok olyan feladatokról tárolnak adatokat, amelyeket a cron programnak egy adott pillanatban el kell végeznie.
A cron a konfigurációs állományok két külön fajtáját, a rendszer- és felhasználói crontabokat használja. A két típus között levő egyetlen különbség a hatodik mezőben található. A rendszerszintű crontabok esetében a hatodik mező annak a felhasználónak a nevét tartalmazza, amivel a program fut. Ezzel a rendszer szintjén működő crontaboknak megadatott az a képesség, hogy tetszőleges felhasználó nevében futtassanak programokat. A felhasználók crontabjaiban a hatodik mező a futtatandó parancsot tartalmazza, és ilyenkor az összes parancs a crontabot létrehozó felhasználó nevében hajtódik végre. Ez utóbbi egy fontos biztonsági jellemző.
Megjegyzés: A felhasználói crontabok lehetővé teszik az egyes felhasználók számára, hogy a root felhasználó jogosultságai nélkül képesek legyenek feladatokat ütemezni, ugyanis a felhasználóhoz tartozó crontabban szereplő parancsok mindegyike a tulajdonosának engedélyeivel fut.
Az átlagos felhasználókhoz hasonlóan a root felhasználónak is lehet crontabja, ami nem ugyanazt, mint az /etc/crontab (a rendszer saját crontab állománya). De mivel a rendszernek külön crontabja van, ezért a root felhasználónak nem kell külön crontabot létrehozni.
Vessünk egy pillanatást az /etc/crontab (a rendszer crontabjának) tartalmára:
# /etc/crontab - a root crontabja FreeBSD alatt # # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour day month wday who command # # */5 * * * * root /usr/libexec/atrun
Az itt szereplő parancsoknak tetszőleges mennyiségű paraméter átadható, azonban a több soron keresztül átívelő parancsok tördelését a sor végén a “\” karakterrel kell jelezni.
Ez mindegyik crontab állomány alapbeállítása, habár ettől általában egy dologban eltérnek. A hatodik mező, ahol a felhasználót adtuk meg, csak a rendszer /etc/crontab állományában jelenik meg. Ez a mező a felhasználók crontab állományaiból kimarad.
Fontos: Nem kötelező az itt ismertetésre kerülő módon szerkeszteni vagy telepíteni a rendszer crontabját. Egyszerűen nyissuk meg a kedvenc szövegszerkesztőnkkel és a cron segédprogram majd észreveszi, hogy az állomány megváltozott, majd ennek megfelelően neki is lát a módosított változat használatának. Erről a GYIK-ban (angolul) többet is megtudhatunk.
Egy frissen készített felhasználói crontab telepítéséhez először a kedvenc szövegszerkesztőnk segítségével létre kell hoznunk a megfelelő formátumú állományt, majd használnunk a crontab segédprogramot. Ennek általános alakja:
% crontab crontab_állomány
Ebben a példában a crontab_állomány a korábban létrehozott crontab neve lesz.
Lehetőségünk van lekérdezni a
telepített crontab
állományokat: egyszerűen adjuk át a
-l
kapcsolót a
crontab parancsnak és
nézzük meg mit ad vissza.
A crontab -e használata olyan felhasználók számára ajánlott, akik sablon alkalmazása nélkül szeretnének teljesen maguktól megírni egy crontab állományt. Ennek hatására a kiválasztott szövegszerkesztő egy üres állományt kap. Miután ezt az állományt elmentettük, a crontab programmal magától telepítésre kerül.
Ha a későbbiekben törölni akarjuk a
felhasználónkhoz tartozó
crontab állományt, akkor erre
a célra használjuk a crontab
-r
kapcsolóját.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.