Ez a cikk elmagyarázza a ütemezési feladatokat és a szkriptek rendszeres időközönként történő futtatását a cron-feladatok segítségével.
Mi az a Cron?
A Cron egy feladatütemező program, amely folyamatként a háttérben fut. Használható bizonyos ütemezett munkák időszakos futtatására, az előre meghatározott szabálykészlet használatával. A Cron a legtöbb Linux disztribúcióra előre telepítve van, vagy elérhető a tárolókban, hogy manuálisan telepíthető legyen.
Cron Presets
A Cron az Ubuntuban előre meghatározott ütemezőkkel rendelkezik. Az alábbi parancs futtatásával ellenőrizheti őket:
$ ls / etc / cron.*Ezek a mappák általában „/ etc / cron.óránként ”,„ / etc / cron.naponta ”,„ / etc / cron.havonta ”és„ / etc / cron.heti".
Csak tegye a kívánt szkripteket e mappák egyikébe, hogy óránként, naponta, havonta vagy hetente futtasson automatizált feladatokat.
Ne feledje, hogy a cron alapértelmezés szerint a „/ bin / sh” shellt használja. Ha a „/ bin / bash” parancsot akarja használni shellként a cron parancsfájlokban, akkor a „!# / bin / bash ”hashbang a szkriptfájl tetején, vagy definiálja a shell-t“ SHELL = / bin / bash ”változóként az ütemezett bash szkript első sorában. A „SHELL” környezeti változó felülbírálása az alábbiakban ismertetett crontab szerkesztőnél is működik.
Nem minden rendszer környezeti változó lehet kitéve a cron feladatoknak. Tehát általában jó ötlet manuálisan meghatározni a környezeti változókat a cron által ütemezett szkriptben.
Crontab
A Crontab lehetővé teszi, hogy meghatározza saját ütemezett feladatait. Használhatja a cron ütemezésének konfigurálására, amely eltér a fent ismertetett négy standard cron presettől.
Ütemezett feladat beállításához a crontab-ban először indítsa el a crontab szerkesztőt az alábbi paranccsal:
$ crontab -eMost a fájl végén hozzáadhat egy bejegyzést a következő formátumban:
perc óra nap hónap hétköznap / teljes / útvonal / a / szkript.SHHol:
- perc: bármely érték a 0 és 59 közötti tartományban
- óra: bármely érték a 0 és 23 közötti tartományban, 0 éjfél
- nap: bármely érték az 1 és 31 közötti tartományban
- hónap: bármely érték az 1 és 12 közötti tartományban
- hétköznap: a 0 és 6 közötti értékek bármelyike, a 0 vasárnap
Az alábbi crontab bejegyzés készít egy képernyőképet az asztaláról, és március 2-án 15:13 órakor, valamint március minden kedden 15:13 órakor a saját könyvtárában tárolja.
13 15 2 3 2 scrotAz összes crontab bejegyzés felsorolásához használja az alábbi parancsot:
$ crontab -lTovábbi példák
A Cron feladatok a példákkal magyarázhatók a legjobban, ezért az alábbiakban bemutatunk néhány példát, amelyek rendszeresen képernyőképeket készítenek az Asztalról és otthoni mappában tárolják őket.
Az öt ütemezési változó mellett a cron néhány speciális karakterláncot is használ a feladatok ütemezéséhez. Ezek a húrok:
- @ óránként: a munka óránként fut
- @daily / @midnight: a munkát minden nap végzik
- @ hetente: a munka hetente egyszer fut
- @havi: a munka havonta egyszer fut
- @ év / @ évente: a munka évente egyszer fut
- @reboot: a feladat minden újraindításkor / bejelentkezéskor egyszer fut
Az alábbi crontab bejegyzés minden újraindításkor egyszer képernyőképet készít:
@reboot scrotA „@reboot” bármely más, fent említett karakterlánccal helyettesíthető.
Csillag vagy helyettesítő karakter használata az öt változó bármelyike helyett megismétli a munkát a változó minden új példányán. Az alábbi bejegyzés percenként képernyőképet készít:
* * * * * ScrotMinden órában:
0 * * * * scrotMindennap 18:00 órakor:
0 18 * * * scrotMinden hónap 6-án 18:00 órakor:
0 18 6 * * scrotHasználja a „/” parancsfájlt egy rögzített, 30 perces (30 percenként futó) időszakos futtatáshoz:
* / 30 * * * * scrotVesszővel elválasztott változókkal definiálhatja a parancsfájl ismételt végrehajtását rendszeres időközönként. Az alábbi példa egy új óra minden 1., 4. és 5. percében elkészít egy képernyőképet az asztaláról.
1,4,5 * * * * scrotA Crontab bejegyzések ellenőrzése
A crontab bejegyzések meghatározása bonyolult lehet, de még hibásabb hibakeresés vagy annak ellenőrzése, hogy megfelelő időbélyegzőkkel működnek-e. Az egyik lehetőség az, hogy virtuális gépet használ, és naplózza a cron jobon időnként futó szkript időbélyegeit oly módon, hogy a „date” parancsot tartalmazza, és a kimenetet átirányítja egy szövegfájlba. Jobb megoldás azonban az interneten elérhető számos online cron-tesztelési szolgáltatás egyikének használata. Azt javaslom, hogy adja meg a cron teszter webhelyét itt próba.
Következtetés
A cron-feladatok futtatása kiváló módja az ismételt feladatok automatizálásának, különösen a szervereken. Az eszköz rendkívül hatékony és testreszabható. Fontos azonban megbizonyosodni arról, hogy az ütemező definíciója megfelelően működik-e, főleg ha kritikus feladatok vannak.