Hasznos tippek a linux feladat ütemezés cron és at

Linux és UNIX rendszerek lehetővé teszik, hogy a menetrend mind egyszeri és ismétlődő feladatokat. Ebben a cikkben, kivenni a tankönyv vizsga LPI 102 Igazgatási feladatok (LPI vizsga 102 prep: Adminisztratív feladatok). Ez azt mutatja, hogy hogyan kell csinálni.

Feladatok elvégzésére rendszeres időközönként

Feladatokat végző rendszeres időközönként ellenőrzi a cron létesítmény. amely a crond démon és táblacsoportban írja le, amit a munka és milyen gyakran kell végezni. Daemon felébred percenként, és ellenőrzi a menetrend fájlt (crontabok), hogy meghatározza, mit kell tenni. Felhasználók kezelni ezeket a fájlokat a crontab. Crond démon folyamat általában kezdődik inicializálás (init) a rendszer indításakor.

Az egyszerűség kedvéért tételezzük fel, hogy szeretne rendszeresen futtatni a parancsot az 1. listában Csak mondja a dátumot és az időt, de lehet egy példát, hogy megértsük, hogyan kell használni crontab beállítani a feladatokat a cron, amint megtudjuk a kimenet, amikor már végezni. Készítsen rekordok az ütemezési fájlt igényel összhangban rejtett szoftver Shell metakaraktereket, ezért jobb lenne, hogy csinálni egyszerű parancsokat és paramétereket. Ebben a példában az echo parancs fog futni /home/ian/mycrontab.sh szkriptek, amelyek nem igényelnek lehetőségeket. Így nem potrebutsya aprólékos munka rejtett szimbólumok.

1. lista Példa egy egyszerű parancs

Ütemezését fájl

Minden rekord a menetrend fájlban hat mezőből áll:

  1. perc
  2. óra
  3. a hónap napja
  4. hónap
  5. a hét napja
  6. A string, hogy kell futtatni a segítségével sh

Percben és órában kell tartományban 0-59 és 0-12, illetve, míg a hónap napja és a hónap - 1-31, és 1-től 12, ill. A hét napja változik 0-6, ahol 0 = vasárnap. Azt is nevezik nap, H, K, stb A hatodik mezőt -, hogy ennyi van az ötödik és értelmezi a húr átadni sh. A százalékjel (%) átvisszük a felső sorban, így ha azt szeretné,%, vagy bármilyen más speciális karaktert, hogy egy backslash előtte (\). A húr, mielőtt az első továbbított% -ban puha héj, és minden után% -os, a standard input.

A különböző területeken kapcsolatos idő, lehet, hogy a bizonyos értéket, értéktartomány, például 0-10 vagy napon sze, vagy vesszővel elválasztott listája az egyedi értékek vagy időközönként. Bizonyos mértékig, mesterségesen létrehozott egy rekord a menetrend fájl egy csapat példánkban ez nézhet ki például a 2. listában.

2. lista Példa egy egyszerű ütemezés fájl

Mi a helyzet a kimenetet?

Lehet, hogy csoda, hogy mi történik a parancs kimenetét. A csapatok többsége dolgozik cron funkció irányítja a kimenetet a syslog napló keresztül funkció, amely tárgyalja a bemutató LPI vizsga 102 Igazgatási feladatok (LPI vizsga 102 prep: Adminisztratív feladatok). Azonban bármilyen kimenetet küldött stdout, küldjük el a felhasználó. 3. lista mutatja a kimeneti, hogy lehet kapni a mi példánkban parancsot.

3. lista cron kimeneti postán beérkezett

Hol a menetrend file?

Menetrendek fájlt (crontab), amely létrehozta a crontab. tárolja a / etc / spool / cron alatt a felhasználói nevet, amely azt létrehozta. Így, menetrendek fájl, amely a fent tárgyalt, tárolt / etc / spool / cron / ian. Tudván ezt, akkor nem meglepő, hogy a crontab. a passwd. egy suid-program fut root jogosultságokkal.

/ Etc / crontab

Amellett, hogy a felhasználói fájlok menetrendek / var / spool / cron cron is ellenőrzi az / etc / crontab és a könyvtár fájl /etc/cron.d könyvtárban. Az ezeket a fájlokat, akkor a rendszer menetrendek egy másik területen, a megfelelő ötödik nap a héten, és a csapat. Ez azonosítja a felhasználót, ahol van egy csapat, mint általában, a felhasználótól - gyökér. / Etc / crontab nézhet ki például a 4. listában.

4. lista / etc / crontab

Ebben a példában a tényleges munkát a run-parts parancsot. azaz szkripteket /etc/cron.hourly, /etc/cron.daily stb.; / Etc / crontab egyszerűen vezérli a módját időszakos feladatokat. Felhívjuk figyelmét, hogy minden utasítás végrehajtása rootként. Megjegyzendő, hogy a menetrendi fájl tartalmazhat hozzárendelése a shell változók, amelyek telepítve lesz futtatása előtt parancsokat.

Cron funkció jó rendszerek folyamatosan futnak. Azokban az esetekben, ahol a rendszer meglehetősen hosszú időt ki, mint például a laptopok, a tervezett bevezetése feladatok általában napi, heti vagy havi rendszerességgel biztosítja a cron, végezhet a funkció anacron (ami azt jelenti: „anakronisztikus cron”, „anakronisztikus cron”). Anacron nem támogatja az óránkénti feladatellátás.

Anacron tartja timestamp fájlok a / var / spool / anacron, így rögzíti, amikor a feladat. Induláskor anacron ellenőrzések hány nap telt el azóta, a legutóbbi végrehajtás feladat, és végrehajtja azt, ha szükséges. Táblázat hozzárendeléseit anacron tárolt fájl / etc / anacrontab, a formátum amelyek kismértékben különböznek a / etc / crontab. Ahogyan az / etc / crontab / etc / anacrontab tartalmazhat telepítési környezetet. Minden feladat megfelel négy területen:

Időszak - a napok számát, de megadhatjuk azt @monthly az elvégzendő feladatot csak havonta egyszer, függetlenül attól, hogy hány nap van. Delay - hány percig kell várni, az idő, amikor a feladat futásra kész, a futtatáshoz. Ezt használjuk, hogy elkerüljük flow problémákkal, ha a rendszer be van kapcsolva. feladat azonosító tartalmazhat bármilyen nem üres karaktert, kivéve perjeleket (/).

És / etc / crontab és / etc / anacrontab módosított közvetlen szerkesztést. Nem kell használni a parancsot crontab. frissíteni ezeket a fájlokat, vagy fájlokat egy könyvtárban /etc/cron.d könyvtárban.

Végezze el a feladatot egy adott időpontban

Szükség lehet arra, hogy egy feladatot csak egyszer, és csináld rendszeresen. Erre a célra, az at parancs. Az elvégzendő feladatok, olvasni a megadott fájlt a -f. vagy a szabványos bemenetről stdin, kivéve, ha -f nem használják. -m zászló e-mailt küld a felhasználónak, akkor is, ha a csapat nem rendelkezik szabványos kimenetre. A -v megjeleníti az időt, amikor a feladat fog futni olvasása előtt a munkát. Az idő is megjelenik a kimeneten.

5. lista egy példát mutat a munka mycrontest.sh forgatókönyv. mint a korábban alkalmazott. 6. kódrészlet kimeneti küldött a felhasználó, miután elkezdte a munkát. Felhívjuk figyelmét, hogy ez kissé tömörebb, mint az, hogy elküldte a cron.

5. lista használata a parancs
Listing 6. kimenet feladat kezdődött parancs

Jelzése idő is elég bonyolult. 7. kódrészlet néhány példát. Több informauiyu megtalálható a férfi oldalt szentelt az at parancsot. a / usr / share / doc / at / timespec vagy /usr/share/doc/at-3.1.10/timespec fájltípust, ahol megegyezik a verzió 3.1.10 a csomagot.

Listing 7. Idő értékeket az at paranccsal

A csapat is van lehetőség -q (queue - a sorrendben). Növelése prioritási értéket növeli szép beállítani. Van is egy batch parancs. amely hasonlít a címen. azzal az eltéréssel, hogy a parancsok futnak, ha a rendszer elég kicsi betöltve. A részleteket e tulajdonságok leírása a man oldalt.

Ütemezett feladatok

Listing 8. Bemutatás ütemezett feladat
Listing 9. A meg -c egy feladat száma

Felhívjuk figyelmét, hogy a tartalmát a szkript lett másolva egy beépített dokumentum, amelyet végre kell hajtani szoftver shell meghatározott SHELL változóban vagy / bin / sh, ha a SHELL változó nincs beállítva. A bemutató LPI vizsga 101 témában 103: GNU parancsokat és UNIX (LPI vizsga 101 prep, Topic 103: GNU és UNIX parancsokat) megnézheti a beágyazott dokumentumokat, ha szükséges.

Törlése ütemezett feladatok

Minden tervezett cron cron feladatok el lehet távolítani a -r paranccsal. amint azt a 10. példában.

Listing 10. megjelenítése és törlése a cron-

Törléséhez cron vagy anacron rendszer feladatai / etc / crontab / etc / anacrontab vagy szerkeszteni vagy törölni fájlokat /etc/cron.d könyvtárban.

Egy vagy több ütemezett feladatok a címen. Törölheti a csapat atrm a számukat. Több munkahelyet kell egy szóközzel elválasztva. Lista 11. ábra egy példát.

Listing 11. Bemutatás és eltávolítása munkahelyek atq és atrm

Állítsa a felhasználói hozzáférést a Task Scheduler

Ha /etc/cron.allow fájl létezik, minden felhasználót, hogy nem a superuser gyökér, meg kell határozni benne, hogy képes legyen használni crontab és a cron. Ha nincs ilyen fájl létezik, de /etc/cron.deny a felhasználó, aki nem root felhasználó volt, és a listán ez a fájl nem lesz képes használni crontab vagy a cron létesítmény. Ha sem egyik, sem a másik fájl, csak a rendszergazda hagyjuk ezt a parancsot. Üres fájl /etc/cron.deny (és ez alapértelmezés szerint üres) lehetővé teszi, hogy minden felhasználó dolgozni cron funkciót.

Hasonló fájlokat - /etc/at.allow és /etc/at.deny.

Bővebben

Get termékek és technológiák

  • A következő fejlesztési projekt Linux IBM próbaszoftver létrehozása szoftver. letölthető közvetlenül a developerWorksön.

Kapcsolódó cikkek