crontab(1)


NÉV

crontab - felhasználói crontab -ok manipulálása (Dillon's Cron)

HASZNÁLAT

crontab file [-u user] - crontab cseréje file -ból
crontab - [-u user] - crontab cseréje standard inputról
crontab -l [user] - a felhasználói crontab listázása
crontab -e [user] - a felhasználói crontab szerkesztése
crontab -d [user] - felhasználói crontab törlése
crontab -c dir - crontab directory megadása

LEÍRÁS

crontab

Ezzel a paranccsal egy-egy felhasználóra vonatkozó crontabot lehet módosítani. Csak a superuser adhat meg a magáétól különbözô felhasználónevet, illetve más crontab könyvtárat a parancshoz. Általában a -e opció jeleneti a saját crontab -unk módosítását. A crontab -ok módósításához a /usr/bin/vi -t, illetve a VISUAL környezeti változóban meghatározott szerkesztôt hasznalja a parancs.

Eltérôen más crond/crontab -októl ennek a crontab -nak nem célja,hogy minden szóbajövö feladatot megoldjon. Ôszintén szólva egy shellscript sokkal jobban használható a környezet manipulálására mint a cron, és nem látok különösebb indokot, hogy a felhasználók saját shellt használjanak, (amihez szükség van a kulcsszavukra) cron parancsok futtatásahoz, hiszen ezeknél külön kell kezelni a non-user crontab -eket, mint például az UUCP -t. A crontab parancsok futtatása a /bin/sh -val történik, és csak három környezeti változó (USER, HOME, SHELL) íródik át.

a crond automatikusan detektálja az idôbeli változásokat. Az egy óránál fiatalabb visszafelé indexelt idôátálítások hatására NEM futnak újra az eltelt idôszakban már kiadott crontab parancsok. Ha elôrefelé indexeljük az idôt, úgy, hogy kevesebb mint egy órával mutat a jövôbe, akkor a kimarado parancsok pontosan egyszer hajtódnak végre. Akár a jövôbe, akár a múltba mutató egy óránál nagyobb változtatások hatására a crond újraszinkronizál, és nem adja ki az ezáltal kimaradó parancsokat. A parancs nem is próbálja az esetleges úraindítás miatt elvesztett parancsokat újrafuttatni, valamint a parancsok nem kerülnek végrehajtásra akkor sem, ha az elôzôleg kiadott parancs még fut. Például ha a crontab -ban megadjuk a 'sleep 70' parancsot, és percenként akarjuk végrehajtatni, akkor a cron csak két percenként fogja tudni kiadni azokat. Ha ez a tulajdonság kellemetlen lenne, akkor még mindig futtathatjuk a parancsainkat a háttérben az '&' jellel. crond automatically detects changes in the time. Reverse-indexed time changes less then an hour old will NOT re-run crontab commands

A crontab formátum nagyjából megegyezik a vixiecron formátumával, de a crontab esetében néhány komplexebb opció hiányzik. Az egyes mezôk tartalmazhatnak idôpontot, idôintervallumot, skip faktoros idôintervallumot, szimbólikus intervallumot a hét napjaira, illetve az év hónapjaira, valamint további részintervallumokat vesszôvel elválasztva. A crontab file -ban lévô üres, vagy hashmark -kal (#) kezdôdô sorokat a parancs nem veszi figyelembe. Ha megadtuk a hét és a hónap egyik napját is, akkor a crontab bejegyzés le fog futni minden héten a megadott napon, valamint minden hónapban a megadott napon.(A két feltétel vagy kapcsolatát képezzük.)


# PERC ÓRA NAP HÓNAP AHÉTEGYNAPJA PARANCS # MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# at 6:10 a.m. every day # at 6:10 a.m. every day
10 6 * * * date

# minden második órában az óra végén
0 */2 * * * date

# minden második óraban reggel 11-tôl este 7-ig , valamint este 8-kor
0 23-7/2,8 * * * date

# este 11-kor negyedikén, valamint minden hétfôn, kedden, és szerdan
0 11 4 * mon-wed date 0 11 4 * mon-wed date

# január elsején délután 4-kor # 4:00 a.m. on january 1st
0 4 1 jan * date 0 4 1 jan * date

# óránként egyszer, és minden kimenet a log file -ba menjen # once an hour, all output appended to log file
0 4 1 jan * date >>/var/log/messages 2>&1 0 4 1 jan * date >>/var/log/messages 2>&1

A sor parancsrésze a /bin/sh -c <command> -dal fut így tartalmazhat bármilyen érvényes bourne shell parancsot. Általában exec -kel szokás futtatni a parancsot, hogy ne zavarjon bele a process táblába. Szintén gyakori, hogy a kimenetet log file -ba irányitjuk át. Ha nem így teszünk, akkor a parancs a stdout -ban, illetve a stderr -ben hozza létre a kimenetet. Az eredményeket pedig a kérdéses felhasználónak postázza. Ha ezt a mechanizmust speciális felhasználókra alkalmazzuk, mint például az UUCP, akkor ajánlatos aliast készíteni a userhez, hogy a a küldemény valaki másnak menjen, peldául a root -nak, vagy a postamster -nek.

A cron használ egy belsô gyorsindexelô rendszert, hogy valamelyest tehermentesítse CPU -t a futtatandó parancsok kikeresésekor. Többszáz crontab -ot kezelhetünk többezer bejegyzéssel anélkül, hogy észrevehetôen igénybe vennénk a processzor erôforrásait.

ISMERT HIBÁK

Ajánlatos meghagyni a lehetôséget bármelyik felhasználónak, hogy több crontab file -ja lehessen, afféle rendszerezô eszközként használva azokat.

SZERZÔ

Matthew Dillon (dillon@apollo.west.oic.com)


Fordította: Illés Róbert chilly@valerie.inf.elte.hu