A Cron vagy Cron job egy időalapú ütemező, amely általános a Linux / Unix rendszerekben. Ütemezi a meghatározott felhasználói feladatokat, hogy periodikusan, meghatározott dátumban, időben vagy időközönként fussanak. Ezen feladatok többsége olyan parancsfájl, amely olyan funkciókat hajt végre, mint a biztonsági mentések és egyebek. Ezeknek a cron-feladatoknak a létrehozásához a crontab parancsokat használjuk. A crontab egy UNIX parancs / segédprogram, amelyet a cron-feladatok létrehozására és kezelésére használnak.
Amint alább láthatja, a cron-feladat létrehozása és szerkesztése meglehetősen egyszerű. A legcsodálatosabb az, hogy a cron-feladat létrehozása vagy szerkesztése után nem kell újraindítania a cront vagy akár a számítógépét. Csak mentse a fájlt, és máris mehet.
A Cron Jobs gyakori felhasználásai
- A hardver idejének beállítása: A hálózati idő protokollt sok számítógép használja a rendszeridő beállításához, de nem állítja be a hardver idejét. A cron segítségével beállíthatja a hardver idejét a rendszer ideje alapján.
- Feladatok ütemezése és napi programokat futtató programok: A cron szolgáltatással számos olyan rendszerszolgáltatást futtathat, amelyeknek napi felszólításra van szükségük, mint például a Logwatch.
- A könyvtár automatikus tisztítása, a biztonsági mentési programok futtatása és még sok más.
A cron parancs alapvető részei
A crontab szokásos szintaxisa a következő:
a b c d e FELHASZNÁLÓNév / elérési út / a / parancsfájl kimenetre
1.Az időt és a dátumot, valamint a munka ismétlődésének mértékét az öt mező határozza meg:
-
- a: Jegyzőkönyv: (tól 0 - 59)
- b: Órák: (tól 0 - 23 )
- c: Napok: (tól 0 - 31 )
- d: Hónapok: (tól 0 - 12 )
- e: A hét napjai: (tól 0 - 7. )
- a: Jegyzőkönyv: (tól 0 - 59)
Megjegyzés: A napok hétfővel kezdődnek. A 0 és 7 a vasárnapot jelenti
2. FELHASZNÁLÓNÉV
: Ne felejtse el ezt kicserélni a felhasználónevével
3. A cron által végrehajtandó konkrét helyet és szkriptet a harmadik szegmens határozza meg:
/ path / to / script
4. Az utolsó szakasz a feladatok nyomon követésének módjaként határozza meg a felhasználónak a munka befejezésekor történő értesítését:
Kimenet
A beérkező levelek azonban tele lehetnek kisebb feladatokkal, amelyeket gyakran irányítanak. Ennek elkerülése érdekében letilthatja az automatikus e-mail kimenetet, ha hozzáadja az alábbi karakterláncot a cron parancshoz:
> / dev / null 2> & 1 e.g a b c d e FELHASZNÁLÓNév / elérési út / ide / szkript> / dev / null 2> & 1
Ezenkívül a cron további négy értéket használ egy mező több értékének megadásához. Ők:
- Csillag (*): A mező összes értékére vonatkozik.
- A vessző (,): Használja az értékek listájának elválasztásához a cron parancsban.
- Gondolatjel (-): Adjon meg egy értéktartományt.
- Perjel (/): egy értéket különböző lépésekre oszt.
A cron feladatok beállítása
A crontab parancsok felelősek a cron-feladatok létrehozásáért és szerkesztéséért, mert a cron-fájlokat nem szabad közvetlenül szerkeszteni. A crontab meghatározza, hogyan lehet létrehozni, szerkeszteni, felsorolni, hibakeresni, telepíteni és eltávolítani a cron feladatokat.
Mielőtt elkezdené a cron-feladatokat, elengedhetetlen, hogy az alábbi parancsok végrehajtásával gondoskodjon a Linux asztal vagy szerver naprakészségéről:
sudo apt frissítés sudo apt frissítés
Ha nincs telepítve a rendszerre a cron csomag, telepítse az alábbi paranccsal:
sudo apt-get install cron
A crontab fájl szerkesztése?
A folyamat befejezéséhez konfigurálnia kell a cron feladatot. A cron job létrehozásakor bejelentkezett felhasználó automatikusan a tulajdonos lesz. Ez megváltoztatható egy olyan tulajdonos létrehozásával, aki felelős lesz a cron munka kezeléséért, amint ezt a bejegyzésben láthatjuk.
A crontab konfigurációs fájl megnyitásához az éppen bejelentkezett felhasználó számára hajtsa végre az alábbi parancsot:
crontab -e
A rendszer felszólítja a megfelelő szerkesztő kiválasztására. Esetünkben az első lehetőséget választjuk (nano szerkesztő).
Soránként egy ütemezett feladatot adhat hozzá az Ön igényei szerint.
A feladatok hozzáadása után fejezze be a fájl mentésével és lépjen ki. Az összes megadott utasítást a cron démon elolvassa és végrehajtja. A változtatások a rendszer újraindítása nélkül is érvénybe lépnek, mivel a lerakat automatikusan frissül.
A crontab szerkesztése egy másik felhasználó számára
A Crontab különböző felhasználók számára szerkeszthető az alábbi szintaxisban található paranccsal:
crontab -u egyéb_felhasználónév -e
A speciális karakterek használata a crontab parancsokban
A karakterek és az operátorok a rendszer további testreszabását diktálják, mivel kibővítik a cron feladat képességeit.
- A perjel segítségével az idősorok meghatározott lépésekre oszthatók. Például 30 percenként biztonsági másolat futtatásához használhatjuk:
* / 30 * * * *
- A csillag (*) az összes végrehajtandó érték végrehajtására szolgál. Például:
* / 15 ***
- A kötőjel (-) segítségével meghatározható a tevékenységek köre, például a napok száma. Mert
Például, ha a kódot minden hétköznap reggel 6 órakor futtatjuk, használjuk;
0 6 * * 1-5 / root / backup.SH
Itt a 06 jelentése 6 óra. 1-5 a napok számát jelenti (hétfőtől péntekig).
- Vessző adja meg azokat az egyedi eseteket, amikor a kódnak futtatnia kell:
0 4 * * 2,4 / root / backup.SH
A fenti parancs kedden és csütörtökön hajnali 4 órakor hajtja végre a parancsfájl kódját.
- Különböző helyettesítő karaktereket is kombinálhat a parancsok testreszabásához. Például a szkriptünk minden második nap, az óra elmúlt 35 percében történő végrehajtásához használhatjuk az alábbi parancsot:
35 1-23 / 2 * * * / path / to / script / script.SH
1-23 meghatározza az órák tartományát, / 2 minden második órára beállítja az intervallumot.
Cron Options
- Sorolja fel az összes cron-munkát
Érdemes felsorolni a rendszer cron-feladatait a crontab konfigurációs fájl feloldása nélkül. Ezt úgy teheti meg, hogy elindítja a terminált, és beírja az alábbi parancsot:
crontab -l
Ez a parancs felsorolja a rendszerben található összes cron feladatot.
- Töröljön minden crontab munkát
Az összes crontab parancs törléséhez használhatja az alábbi parancsot:
crontab -r
- Cron-feladat törlése egy másik felhasználó számára.
crontab -r -u más felhasználónév
Használja a Strings alkalmazást a Crontab-ban
A karakterláncok rendkívül hasznos eszközök a fejlesztők számára, mivel elkerülik a kódszegmensek ismétlődő írását. Szerencsére a crontabs támogatja a különféle húrértékeket. Tartalmazzák:
@óránkénti:
-ugyanaz, mint - „0 * * * *“ (Minden alkalommal végrehajt óra)@éjfél:
-ugyanaz, mint - „0 0 * * *“ (Minden alkalommal végrehajt nap)@napi:
ugyanaz, mint éjfél@heti:
-ugyanaz, mint - „0 0 * * 0“ (Minden alkalommal végrehajt hét)@havi:
-ugyanaz, mint - „0 0 1 * *“ (Minden alkalommal végrehajt hónap)@évente:
-ugyanaz, mint - „0 0 1 1 *“ (Minden alkalommal végrehajt év)@évi:
hasonló @ évente@reboot:
Minden újraindítás / újraindítás / indítás után egyszer végrehajtva.
Jó példa; ha van egy biztonsági mentési szkriptje, amelyet minden nap futtatni szeretne, használja az alábbi parancsot:
@daily / path / to / backup_script.SH
Példák cron munkákra
Az alábbiakban felsoroljuk azokat az alapvető cron-feladatokat, amelyek az induláskor használhatók:
-
- Szkript futtatása percenként:
* * * * * / a / script / path.SH
- Szkript futtatása 40 percenként:
40 * * * * / a / script / elérési út.SH
- Szkript futtatása óránként:
0 * * * * / a / script / path.SH
- Szkript futtatásához minden éjfélkor:
0 0 * * * / a / script / path.SH
- A szkript futtatása éjfél után 23 percenként, minden nap hajnali 2 és 4 óra után:
23 0-23 / 2 * * * / a / script / path.SH
- Szkript futtatása 4-kor.05 minden vasárnap.
5 4 * * sun / a / script / path.SH
- A héten 22 órakor forgatókönyvet futtatni.
0 22 * * 1-5 / a / script / elérési út.SH
- Forgatókönyv futtatásához december 1-jén éjfélig.
0 0 0 12 * / a / script / elérési út.SH
- Szkript futtatására szombaton éjfélkor.
0 0 * * 6 / a / script / elérési út.SH
- Minden órában futtatni egy szkriptet.
0 * * * * / a / script / path.SH
- Szkript futtatása percenként:
Ezekkel az alapvető példákkal mélyebben megismerheti a sorrendet és annak módosítását.
A Cron hozzáférés korlátozása
Úgy látjuk, hogy a cron-feladatok nagyon hasznosak lehetnek, különösen akkor, ha automatizálni szeretné a feladatait. Kockázatos lehet azonban az is, ha a rendszer bármely felhasználó számára lehetővé teszi a cron-feladat létrehozását. Még ha nem is érinti a személyes adatokat, néhány cron-feladat meglehetősen sok rendszererőforrást igényelhet, így elmarad a PC-től. Az ilyen esetek elkerülése érdekében a rendszergazda (root felhasználó) létrehozhat egy / etc / cron.lehetővé teszi
vagy / etc / cron.tagadni
a fájl, amely csak felhasználókat tartalmaz, akik tudnak 'teremt / nem hoz létre' egy cron munka.
A / etc / cron.lehetővé teszi
a fájl olyan felhasználókat tartalmaz, akik létrehozhatnak, szerkeszthetnek, megjeleníthetnek vagy eltávolíthatnak crontab fájlokat. Ha ez a fájl nem létezik, akkor minden felhasználó létrehozhat és kezelhet Cron-feladatokat, amelyek nem a / etc / cron.tagadni
fájl. Ha ezen fájlok egyike sem található, akkor a crontab parancs futtatásához superuser jogosultságokra van szükség.
Most, hogy megakadályozta a nem root felhasználókat abban, hogy Cron-feladatokat hozzanak létre, ha már rendelkeztek ilyenekkel, fontolóra veheti a cron-feladataik hozzáadását a root crontab fájlba. De itt van egy rejtvény - Ha a cron-feladataikat hozzáadjuk a root crontab-hoz, akkor ez nem futtatja a cron-feladataikat root-ként? Nos, itt jön a USERNAME mező fontossága, amelyet fentebb a cron parancs szintaxisában tárgyaltunk. Például az alábbi parancs:
0 * * * * fosslinux / path / to / script.SH
Futtatásként „fosslinux” cron felhasználói feladatként fog futni, nem pedig root felhasználóként.
Következtetés
Most már világos útmutatója van a Cron-feladatok használatáról a rendszer különböző feladatai automatizálására. Ez nem tévesztheti össze a Startup alkalmazásokkal. Használja a fenti példákat az egyszerű szkriptek kipróbálására és automatizálására. Idővel kombinálhatja a speciális karaktereket és a vadkártyákat, hogy sokkal hétköznapibb feladatokat hajtson végre. Ha még csak most kezded, nagyon jó lenne elolvasni a bash szkript oktatóanyagról szóló bejegyzésünket példákkal, amelyek segítenek az első szkript létrehozásában.