Crontab Linux alatt: Munkaütemezési PÉLDÁK
⚡ Okos összefoglaló
A Linuxban a Crontab a cron démon segítségével automatikusan, meghatározott időpontokban, dátumokon vagy időközönként futtatja a parancsokat, lehetővé téve a rendszergazdák számára a biztonsági mentések, a naplók tisztítása, az értesítések és a rendszeres rendszerkarbantartás automatizálását manuális beavatkozás nélkül.

A Crontab, a cron table rövidítése, egy konfigurációs fájl és parancs, amely a meghajtót futtatja. Linux Feladatütemezés. Az alábbi szakaszok ismertetik a crontab formátumot, a feladatok hozzáadására, listázására és eltávolítására szolgáló parancsokat, a speciális @ karakterláncokat, valamint a használatra kész ütemezési példákat.
Mi az a crontab?
A Cron a görög „Chronos” szóból kapta a nevét, ami időt jelent. Ez egy rendszerfolyamat (démon), amely automatikusan végrehajtja a feladatokat egy beállított ütemezés szerint. A Cron egy parancskészlet, amely rendszeres ütemezett feladatok futtatására szolgál. A Crontab a „cron table” (cron tábla) rövidítése, és lehetővé teszi a cron feladatütemező használatát ezen feladatok végrehajtásához.
A Crontab a program neve is, amelyet az ütemezés szerkesztésére használnak. A programot egy crontab fájl vezérli – ez egy konfigurációs fájl, amely felsorolja a megadott ütemterv szerint periodikusan futtatandó shell parancsokat.
Miért érdemes Cron feladatokat használni?
Íme a cron feladatok használatának fő okai Linuxon:
- Ütemezett biztonsági mentéseket készít a naplófájlokról vagy adatbázisokról.
- Automatikusan törli a régi naplófájlokat.
- Archimegtisztítja és kiüríti az adatbázis tábláit.
- Értesítő e-maileket küld, például hírleveleket vagy jelszó lejárati emlékeztetőket.
- Rendszeresen törli a gyorsítótárazott adatokat.
- Automatizálja az ismétlődő Unix és Linux feladatokat.
- Automatizálja a rendszeres rendszerkarbantartást.
Hogyan kell használni a cront Linuxon?
A Linux rendszercsomag tartalmaz egy hasznos feladatütemezőt, a crontab-ot. A Crontab népszerűsége abban rejlik, hogy egy feladatot root felhasználóként lehet futtatni, ami megkönnyíti az automatizált rendszermódosításokat. Egyszerűen csak egyszer módosítjuk a feladatot, majd megvárjuk, amíg az ütemterv szerint újra elindul.
Linux Crontab formátum
Egy Linux crontab bejegyzés hat mezőből áll. Az első öt mező a végrehajtás időpontját és dátumát határozza meg, a hatodik mező pedig a futtatandó parancsot tartalmazza.
Crontab szintaxis:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
Az alábbi ábra a crontab bejegyzésekben található minden csillagot leképez az általa vezérelt mezőre, perctől a hét napjáig, majd a végrehajtandó parancsot.
Az öt időmező a következő értékeket fogadja el: perc (0–59), óra (0–23), a hónap napja (1–31), hónap (1–12 vagy jan–dec) és a hét napja (0–7, ahol a 0 és a 7 egyaránt vasárnapot jelent). Az egyes mezőket a következő speciális karakterekkel vezérelheti:
- Csillag (*): Az adott mező összes lehetséges értékének megfelel.
- Tartomány meghatározása: Tartomány megadásához használjon kötőjelet, például 1-10, 30-40, jan-már vagy hétfő-szer.
- Több tartomány meghatározása: Használjon vesszőket a tartományok összevonásához, például ápr.-jún., okt.-dec.
A Crontab hozzáadása/módosítása
A felhasználók a következő crontab paranccsal szerkeszthetik saját crontab feladataikat. Az -u opció egy adott felhasználó crontabját célozza meg, ezért a felhasználónevet a későbbi példákban látható módon kell megadni:
$ crontab -u -e
A fenti parancs megnyitja a rendszeredhez tartozó személyes crontab konfigurációt, amelyet az alapértelmezett szövegszerkesztőben szerkeszthetsz.
Nem kell újraindítani a cront; az automatikusan átveszi a módosításokat. Az aktuális feladatok megtekintéséhez használd a következőt:
$ crontab -l
A crontab feladatok eltávolításához használja a következő parancsot:
$ crontab -r
Egy feladat hozzáadásához vagy frissítéséhez a crontabban használja az alábbi parancsot:
crontab -e
Egy másik felhasználó crontabjának szerkesztéséhez nevezd el a felhasználót a -u kapcsolóval:
crontab -u username -e
Hogyan listázzuk ki a Crontabot
Az aktuális felhasználó crontab bejegyzéseinek megtekintéséhez:
crontab -l
Egy adott felhasználó crontab bejegyzéseinek megtekintéséhez:
crontab -u username -l
Fontos Crontab példák
Íme néhány fontos, használatra kész példa a crontab ütemezésekre:
| Leírás | parancs |
|---|---|
| Futtatja a különböző ütemezési feladatokat. Az alábbi parancs naponta reggel 7-kor és délután 5-kor fut. |
0 7,17 * * * /scripts/script.sh
|
| 5 percenként végrehajt egy cron feladatot. |
*/5* * * * * /scripts/script.sh
|
| Végrehajtja a feladatot minden Monday hajnali 5-kor. Ez hasznos a heti feladatokhoz, például a rendszer tisztításához. |
0 5 * * mon /scripts/script.sh
|
| 3 perces időközönként futtatja a szkriptet. |
*/3 * * * * /scripts/monitor.sh
|
| Cron feladatot ütemez, amely meghatározott hónapokban fut – itt februárban, júniusban és szeptemberben. |
* * * feb,jun,sep * /script/script.sh
|
| A kiválasztott napokon fut le. Ez a példa minden nap lefut. Monday és szerdán 5 órakor. |
0 17 * * mon,wed /script/script.sh
|
| Lehetővé teszi a cron futtatását minden hónap első szombatján. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
| 6 órás időközönként futtat egy szkriptet, az alábbiak szerint konfigurálva. |
0 */6 * * * /scripts/script.sh
|
| Feladat kétszeri végrehajtására ütemez Monday és kedden. Ehhez használja a következő beállításokat. |
0 4,17 * * mon,tue /scripts/script.sh
|
| Cron feladat végrehajtását ütemezi 15 másodpercenként. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
| Évente ütemezi a feladatokat. Az @yearly paraméter hasonló a „0 0 1 1 *” paraméterhez. Évente egyszer, január 1-jén éjfélkor futtatja le a feladatot – ez hasznos az újévi üdvözletekhez. |
@yearly /scripts/script.sh
|
| Havonta futtatja a feladatokat. A @monthly paraméter értéke hasonló a „0 0 1 * *” paraméterhez. Minden hónap első napján éjfélkor futtatja a feladatot. |
@monthly /scripts/script.sh
|
| Több feladatot hajt végre egyetlen cron bejegyzés használatával. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
| Heti rendszerességgel ütemezi a feladatokat. A @weekly hasonló a „0 0 * * 0”-hoz. Heti feladatokat futtat, például minden vasárnap éjfélkor a rendszer tisztítását. |
@weekly /bin/script.sh
|
| Naponta ütemezi a feladatokat. A @daily paraméter hasonló a „0 0 * * *” paraméterhez. Naponta egyszer, éjfélkor futtatja a feladatot. |
@daily /scripts/script.sh
|
| Óránként futtatja a feladatokat. A @hourly hasonló a „0 * * * *” értékhez. Minden óra elején futtatja a feladatot. |
@hourly /scripts/script.sh
|
| Feladatokat futtat a rendszer újraindításakor. A @reboot parancs hasznos azoknál a feladatoknál, amelyeket a rendszernek indításkor kell futtatnia, lehetővé téve a háttérben futó feladatok automatikus elindítását. |
@reboot /scripts/script.sh
|

