Időszakos feladatok ütemezése a Cron használatával Linuxban
cron
egy Linux-program, amely egy parancs vagy egy parancsfájl egy későbbi időpontban történő végrehajtásának ütemezésére szolgál. Használható időszakosan futó parancsok és szkriptek ütemezésére is. A cron használatával ütemezett programokat általában úgy nevezik Cron Jobs. Fő felhasználása rendszeradminisztrációs feladatokra, például rendszeres biztonsági mentésekre, rendszeres szoftverfrissítésekre és más hasonló karbantartási feladatokra szolgál.
Bevezetés
cron
démonként fut Linuxban, azaz háttérfolyamatként. Lehetővé teszi a felhasználók számára, hogy a feladatokat közvetlenül a crontab paranccsal ütemezzék, amely megnyitja a Cron File nevű konfigurációs fájlt egy szerkesztőben. Minden felhasználóhoz külön Cron fájlok jönnek létre.
Cron fájl létrehozása és alapvető szintaxis
A crontab
parancsot lehet végrehajtani -e
jelölje be a meglévő Cron fájl szerkesztéséhez. Ha a fájl még nem létezik, akkor létrejön. Ha a felhasználó először hívja meg a parancsot, és több fájlszerkesztő is telepítve van a Linux rendszeren, a parancs megkéri a felhasználót, hogy válasszon egy alapértelmezett szerkesztőt a szerkesztők listájából.
A szerkesztő kiválasztása után létrejön és megnyílik egy cron fájl a felhasználó számára. Most már megadhat feladatokat a fájlban.
A Cron Job megadásának általános szintaxisa a következő:
Alapvetően a a megadott 'perc' (0-59), 'óra' (0-23), 'hónap' (1-31), hónap (1-12), hét napján, (0-7, Vasárnapra a 0 vagy a 7 használható) a Cron Jobban. Az egyszerűsítés kedvéért vegyünk egy példát:
1 2 3 4 5 echo "Hello"
Ez a parancsot jelenti echo "Hello"
a hét minden ötödik napján (pénteken) és a hónap 3. napján, az év minden 4. hónapjában (április) 02:01-kor (2. óra első perc) fog futni.
Ha ugyanazt a parancsot minden nap 02:01-kor kell futtatni, a szintaxis így fog kinézni:
1 2 * * * echo "Hello"
A *
azt jelenti, hogy „mindig” vagy „mindenkiért”, pl. minden hónapra, a hét minden napjára stb.
A parancs operátor (,
) értéklista megadására használható, amikor a feladatot meg kell ismételni. Például:
0 2,3,4 * * * echo "Hello"
Ez a program minden nap hajnali 2-kor, 3-kor és 4-kor fut.
Hasonlóképpen, egy kötőjel (-
) operátor használható egy tartomány megadására, amelyre a feladatnak meg kell ismételnie. Például:
0-20 2 * * * echo "Hello"
Ezzel a program 02:00-kor, 02:01-kor, 02:02-kor fut, és így tovább 02:20-ig.
Végül megvan a perjel ( /
) operátor. Ez az operátor egy intervallumérték megadására szolgál, amely szerint a feladat megismétlődik. Például. */15
a jegyzőkönyv mező azt jelenti, hogy a feladatot 15 percenként meg kell ismételni. 2-10/2
az órák mezőben megadja, hogy a feladatnak 2 óra és 10 óra között meg kell ismétlődnie minden 2 órás intervallum után (2:00, 4:00, 6:00, 8:00, 10:00).
*/15 2-10/2 * * * echo "Hello"
Miután megadta a bejegyzést a Cron fájlban, mentse el a fájlt, és lépjen ki a szerkesztőből.
Látnod kell a "új crontab telepítése" üzenetet a terminálban a crontab fájl mentése és kilépése után.
Makrók
Bizonyos makrók előre definiáltak a Cronban, amelyek megadnak néhány általánosan szükséges időintervallumot, például minden órában, minden napon, minden hónapban stb.
Ha egy feladatot naponta egyszer, a nap elején, azaz 00:00-kor szeretne futtatni, használja a makrót @napi
. Ez egyenértékű 0 0 * * *
.
Ezt a korábban leírt módon a Cron fájlba teheted.
Hasonló módon a többi makró is használható, pl. @óránkénti
(minden óra 0. perce), @havi
(a hónap első napján 00:00), @heti
(00:00 a hét első napján, @évi
(minden év január elsején 00:00), @reboot
(a számítógép minden indításakor).
Következtetés
Ebben a cikkben megtanultuk, hogyan adhatunk hozzá Cron Jobs-ot a Linux rendszeres futtatásához. A Cron Jobs megfelelő használata még a legfájdalmasabb manuális feladatoknál is hasznos, amelyekkel a felhasználó szembesül, pl. régi naplók rendszeres törlése, mindenféle hideg adat archiválása (ritkán hozzáférhető adatok) stb.