Cron segítségével és crontab - programozók fórum

Cron segítségével és crontab - programozók fórum

A nevét könyvtárak és fájlok ismertet Linux (RedHat). Más operációs rendszerek, a nevek eltérő lehet, de az elv cron job pontosan ugyanaz.

Cron egy olyan program, amely elvégzi a feladatot határidőre. Ez lehetővé teszi több dob feladatokat. Ie feladat futhat egy bizonyos ideig, vagy egy bizonyos ideig. A méret és az értékeket a mezők, a crontab a felhasználó számára, kap a végén a cikk.

Ha a rendszer elindul, futtassa a cron démon, és ellenőrzi a feladatsor és a felhasználó munkáját a crontab fájlok. Amikor elkezdi, cron démon először ellenőrzi a / var / spool / cron jelenlétére crontab crontab fájlok felhasználói neveket megfelelő nevét felhasználók / etc / passwd Minden felhasználó csak egy crontab, rekordok a fájl lehet több.

Más szóval - crontab utasításokat tartalmaz a cron démon, mely elindítja a feladat (ok) leírása a crontab. Minden crontab fájl a / var / spool / cron betöltődik a memóriába, ugyanakkor ezek a letöltött fájlokat /etc/cron.d könyvtárban Ezután a cron démon betölti a tartalmát a / etc / crontab Az alapértelmezett beállítás, hogy a / etc / crontab néz ki :

SHELL = / bin / bash
PATH = / sbin: / bin: / usr / sbin: / usr / bin
MAILTO = root
HOME = /
# Run-alkatrészek
01 * * * * root run-parts /etc/cron.hourly
Február 4 * * root run-parts /etc/cron.daily
Április 22 * ​​0 * root futni alkatrészek /etc/cron.weekly
42 április 1 * * root run-parts /etc/cron.monthly

Fájl információ azt jelzi, hogy:
* /etc/cron.hourly könyvtár tartalma fog futni óránként az első percben az óra.
* Tartalom /etc/cron.daily könyvtárban fog futni minden nap, a második percben a negyedik órában.
* /etc/cron.weekly könyvtár tartalma fog futni minden vasárnap 22'oy perc 4'go óra.
* /etc/cron.monthly könyvtár tartalma fog futni minden nap a hónap 42'oy perc 4'go óra.

SHELL = / bin / bash futtatásához használt parancs / bin / bash. Ha a változó nincs megadva, az érték lehet venni a / etc / passwd a felhasználó a tulajdonosa a fájlt.

HOME = / root könyvtárban a felhasználó (a paraméter nem kötelező), ha a szükséges hozzáférést a speciális tulajdonsága a tolmács, a változók értékei és HOME, SHELL lehet változtatni, függetlenül attól, hogy mi van írva a / etc / passwd

MAILTO = root jelentheti, hogy valaki küld egy üzenetet az eredménye a munkacsoportok.

Minden tartalom ezen könyvtárak indul a root felhasználó jogosultságokat és a fájlok szükség van-e jogosultsága a „végrehajtás” (a hozzáférési jogokat cikkek viewtopic.php? T = 331) Ezért szükséges, hogy győződjön meg arról, mielőtt a fájlokat az egyik ilyen, hogy a könyvtárak forgatókönyv nem okoz kárt a rendszerben.

Miután a cron démon fut, és olvassa el a tartalmát a crontab, inaktív, felébred percenként, és ellenőrzi, hogy az új fájl nem az, hogy a kezdete minden csapat ebben a pillanatban, vagy nem jelenik meg crontab kell kezelni. A cron démon felismeri a változásokat a módosítási idő a fájlok vagy könyvtárak, ez a tulajdonsága nincs szükség a indítsa újra a démont.

Mint fentebb említettük, a végeredmény a cron Files könyvtárban
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

csak a root felhasználó crontab felhasználói fájlokat, akkor kell használni a parancsot crontab. Parancs létrehozásához használt, módosítani, és adjunk hozzá egy fájlt a cron démon

Tekintsük a példát: létrehozunk egy crontab a felhasználó felhasználó, a home könyvtár / home / user

Célkitűzés: A fájl futtatásához / home percenként / user / mail, ami küld az e-mail

# Mail fájl tartalmát (a fájl kell a jogot, hogy fuss! Például -rwxr-xr-x)
#! / Bin / bash
káosz = „teszt cron”
echo "$ rendetlenség" | korcs -s "tárgyként" -m application / octet-stream [email protected]

1. Hozzon létre egy ideiglenes fájlt a / home / user / tesztelni a fájl tartalmát teszt:


2. Indítsa el a terminál parancsot crontab / home / user / teszt

Minden. Ezt követően, a / var / spool / cron fájlban jön létre a „user”, mintegy a tartalom

és a fájl a / home / user / mail fogja üzemeltetni a cron démon percenként.

Hozzáférés a / var / spool / cron zárt nélküli felhasználó, hogy azt szeretné, hogy a felhasználó által „felhasználó”, ha olyan crontab, csak írja be a parancsot crontab -l, ha a fájl létezik - megmutatja annak tartalmát.

Fájl törléséhez használja a parancsot crontab -r

Szerkeszteni a crontab -e

Fájlkezelő crontab „root” felhasználó szintaxis:

-------------------------
crontab -u user_name fájl Teremt crontab fájlt a "file" fájl felhasználó "user_name"
-------------------------
-u azt jelenti, amelynek crontab kerülnek feldolgozásra, ha az opció nincs beállítva, ez lesz feldolgozni crontab a felhasználó, aki futott a parancsot crontab.

A méret és a mező értékei

Minden csapat a felhasználó crontab vesz egy vonal és hat mezőből áll. Crontabja fájlok találhatók a / var / spool / cron

Az érvényes értékek:
perces 0-59
h 0-23
den_mesyatsa 1-31
Az 1 hónapos és 12 (lehet három betűt a név a hónap, a regiszter irreleváns jan-dec)
den_nedeli 0-6 (0 vasárnap, akkor írj a nap, hogy ült)

Mind a dátum és az idő mezők szimbólum jelzi * egyezik esetleges értéket. Mert ezeken a területeken, megadhatja értékcsoportokat kötőjellel elválasztva, például:

* * / 2 * * ült echo "ABLAK" nyomdafestékek HELLO minden páros órában, minden szombaton

Egyenértékű az előző példában felvétel (lista)

* * * 0,2,4,6,8,10,12,14,16,18,20,22 ült echo "Helló" nyomdafestékek HELLO minden páros órában, minden szombaton

ugyanaz a jelzés a tartomány

* 0-23 / 2 * * ült echo "ABLAK" nyomdafestékek HELLO minden páros órában, minden szombaton

Debug cron, akkor irányítsa át a kimenetet egy fájlba

0-59 * * * * / home / user / mail 2> /tmp/tmp.cron

Ha futtatja a parancsot a / home / user / mail bármilyen hiba fordul elő, akkor kell rögzíteni /tmp/tmp.cron fájlt, és mindig megtalálja az okát. Ha irányítsa át a kimenetet egy fájlba, e-mail, a felhasználó jelzést a MAILTO változó nem lesz elküldve.

Részletek információt parancsokat lehet futtatni a cron démon a / var / log nevű cron, cron1 stb

A fájl a / var / log / cron rögzített kezdési időpont minden cron feladatok az előző nap

Március 29. 04:03:00 első crond [4434]: (felhasználó) CMD (/ home / user / mail)
Március 29. 04:03:59 első crond [4493]: (felhasználó) CMD (/ home / user / mail)
Március 29. 04:05:00 első crond [4507]: (felhasználó) CMD (/ home / user / mail)
Március 29. 04:06:00 első crond [4549]: (felhasználó) CMD (/ home / user / mail)

A többi fájl cron1, cron2 olyan információt, de idősebb, mint a cron

Ez majdnem annyit kell tudni, hogy a cron és crontab.

Kapcsolódó cikkek