Cron Jobs: Teljes kezdőknek szóló bemutató

Cron Jobs Complete Beginners Tutorial



A Cron a leghasznosabb segédprogram egy Linux vagy UNIX-szerű operációs rendszerben, amely lehetővé teszi parancsok vagy szkriptek futtatását adott ütemezésben, felhasználói beavatkozás nélkül. Az ütemezett parancsokat és parancsfájlokat cron jobként is nevezik. Leggyakrabban az ismétlődő feladatok automatizálására használják, például ütemezett biztonsági mentések futtatására, ideiglenes fájlok tisztítására, a rendszer karbantartására és számos más ismétlődő feladatra. Hasonló a Windows OS Task Scheduler -hez.

Ebben az oktatóanyagban bemutatjuk Önnek az alapvető bevezetést mindarról, amit meg kell értenie egy munka ütemezéséhez a cron segítségével. Ez magában foglalja a cron alapvető szintaxisát, a crontab fájl szerkesztését, a munka ütemezését a cronnal néhány példával, a cron job megtekintését stb.







Cron Job alapjai

Értsük meg a cron munka néhány alapját.



Mi az a Crond?

Crond a démon a Linux rendszerben, amely a háttérben fut, és percenként ellenőrzi, hogy van -e ütemezett munka ekkor. Ha van, akkor elvégzi a feladatot, ellenkező esetben inaktív marad.



Cron Job Syntax

A cron job szintaxisa a következő:





* * * * *parancs/forgatókönyv

Balról:

  • Az első * a jegyzőkönyvnek felel meg (0-59)
  • A második * óra (0-23)
  • A harmadik * a hónap napjának felel meg (1-31)
  • A negyedik * az év hónapjának felel meg (1-12)
  • Az ötödik * a hét napjának felel meg (0-6, vasárnaptól szombatig)

Több érték megadásához egy mezőben használja a következő operátor szimbólumokat:



  1. Csillag (*): Mező összes lehetséges értékének megadása
  2. Gondolatjel (-): Nak nek s adjon meg egy értéktartományt
  3. A vessző (,): Értéklista megadása
  4. Elválasztó (/): Lépésérték megadása

Crontab fájl szerkesztése

A Crontab egy olyan fájl, amely egy meghatározott szintaxisban tartalmazza az ütemezett feladatokat. Kétféle crontab fájl létezik; az egyik a rendszerspecifikus cron-feladatokhoz, a másik a felhasználó-specifikus cron-feladatokhoz.

System cron jobok

A rendszer egészére kiterjedő cron jobok a /etc/crontab fájl és /etc/cron.d könyvtárba, és átfutnak /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly és /etc/cron.mhónap. Csak a rendszergazda férhet hozzá ezekhez a fájlokhoz.

A rendszergazda a következő paranccsal határozhat meg cron feladatot:

$nano /stb./crontab

Itt található a feladat szintaxisa a /etc/crontab fájl:

# min hr dayofmonth month dayofweek felhasználónév parancs
* * * * *felhasználó1ifconfig

Felhasználó-specifikus cron jobok

A felhasználó-specifikus cron jobok a / var / spool / cron / crontabs Könyvtár. Bár ezeket a feladatokat manuálisan is szerkesztheti, ajánlott ezeket a crontab -e paranccsal szerkeszteni.

Egy normál felhasználó a következő paranccsal határozhat meg cron feladatot:

$crontab-És

Például, ha tesztfelhasználóként van bejelentkezve, a crontab -e parancs futtatásával szerkesztheti a tesztfelhasználó crontab fájlját. Hasonlóképpen, ha root felhasználóként van bejelentkezve, a crontab -e parancs szerkeszteni fogja a root felhasználó crontab fájlját.

Adja ki az alábbi parancsot a terminálban a crontab fájl szerkesztéséhez bármely más felhasználó számára:

$sudocrontab-u <felhasználónév> -És

Például, ha teszt1 felhasználóként van bejelentkezve, és szeretné szerkeszteni a test2 felhasználó crontab fájlját, a parancs a következő lenne:

$sudocrontab-uteszt2-És

Itt található a cron job szintaxisa, amely hozzáadható a crontab fájlhoz:

# m h dayofmonth month dayofweek parancs
* * * * * ifconfig

A felhasználó-specifikus feladatokban láthatja, hogy nincs felhasználónév megadva.

Crontab parancsok

A crontab paranccsal szerkeszthetők, listázhatók és eltávolíthatók a cron feladatok:

  • crontab -e Az aktuális felhasználó crontab fájljának szerkesztéséhez
  • crontab -l A crontab fájl tartalmának megjelenítése
  • crontab -u [felhasználónév] Bármely más felhasználó crontab fájljának szerkesztéséhez
  • crontab -r Az aktuális felhasználó crontab fájljának eltávolítása
  • crontab -i Kérdés megjelenítése az aktuális felhasználó crontab fájljának eltávolítása előtt

Munkaütemezés Cronnal

A Cron segítségével egy adott időpontban, dátumon és időközönként futtathat munkát egy minimális egységgel percben, azaz minden percben futtathat egy feladatot.

Egy munka ütemezéséhez a cron segítségével nyissa meg a crontab fájlt az előző szakaszban ismertetett módszerrel. Miután megnyitotta a crontab fájlt, a rendszer felszólítja a szövegszerkesztő kiválasztására. Írjon be egy számot a kívánt szövegszerkesztő kiválasztásához. Görgessen le a fájl aljára, és adjon hozzá feladatokat a fent leírt szintaxisban. A fájl minden sora egy parancsot határoz meg. A sor első öt bejegyzése határozza meg az ütemezett időt, az utolsó bejegyzés pedig azt, hogy melyik parancsot vagy szkriptet kell futtatni.

Példa:

A crontab fájl következő sora azt ütemezi, hogy a cron job futtassa a parancsot/szkriptet minden 30. percben 5 óra után a hét minden napján hétfőtől szombatig.

* /30 5 * * 1-6parancs/forgatókönyv

Percek

Ebben a mezőben adjuk meg azokat a perceket, amikor a parancsot végrehajtani akarjuk. 0 és 59. között van megadva. A * ebben a mezőben azt jelenti, hogy a feladatot percenként kell futtatni. A fenti crontab sorban a */30 jelzi a cron jobnak, hogy a megadott parancsot/szkriptet 30 percenként futtassa.

Órák

Ebben a mezőben adjuk meg azokat az órákat, amikor a parancsot végrehajtani akarjuk. 0 és 23 között van megadva. A * ebben a mezőben azt jelenti, hogy a munkát óránként futtatja. A fenti crontab sorban az 5 érték azt mondja a cron jobnak, hogy öt óránként futtassa a megadott parancsot/szkriptet.

A hónap napja

Ebben a mezőben határozzuk meg a hónap azon napjait, amikor a parancsot végrehajtani akarjuk. 1 és 31 között van megadva. A * ebben a mezőben minden napot jelent. A fenti crontab sorban a * jelzi a cron jobnak, hogy minden nap futtassa a megadott parancsot/parancsfájlt.

Az év hónapja

Ebben a mezőben adjuk meg azokat a hónapokat, amikor a parancsot végrehajtani akarjuk. 1 és 12 között van megadva. A * ebben a mezőben minden hónapot jelent. A fenti crontab sorban a * jelzi a cron jobnak, hogy minden hónapban futtassa a megadott parancsot/parancsfájlt.

A hét napja

Ebben a mezőben adjuk meg a hét azon napjait, amikor a parancsot végre akarjuk hajtani. Vasárnaptól szombatig 0 és 6 között van megadva (vasárnap 0, szombaton 6). A * ezen a területen azt jelenti, hogy egy hét minden napját. A fenti crontab sorban a * jelzi a cron jobnak, hogy futtassa a megadott parancsot/szkriptet minden héten egy héten.

Példák Cron Jobs -ra

Íme néhány példa a cron feladatokra:

Futtasson cron feladatot 15 percenként

A cron feladat 15 percenként történő futtatásának ütemezéséhez adja hozzá az alábbi sort a crontab fájlhoz:

* /tizenöt * * * *parancs/forgatókönyv

Végezzen cron munkát minden reggel 5 órakor

Ha azt szeretné ütemezni, hogy a cron feladat minden nap 5 órakor fusson, adja hozzá az alábbi sort a crontab fájlhoz:

0 5 * * *parancs/forgatókönyv

Végezzen cron munkát minden nap 17 órakor

Ha azt szeretné ütemezni, hogy a cron feladat minden nap 17 órakor fusson, adja hozzá az alábbi sort a crontab fájlhoz:

0 17 * * *parancs/forgatókönyv

Futtasson cron munkát minden hónap első napján reggel 9 órakor

Ha ütemezni szeretné, hogy a cron feladat minden hónap első napján reggel 9 órakor fusson, adja hozzá az alábbi sort a crontab fájlban:

0 9 1 * *parancs/forgatókönyv

Futtasson cron munkát óránként minden március 15 -én

Ha március 15 -én óránként ütemezni szeretne egy cron feladatot, adja hozzá az alábbi sort a crontab fájlhoz:

0 * tizenöt 3 *parancs/forgatókönyv

Futtasson cron munkát 5 óránként

Ha 5 óránként szeretne ütemezni egy cron feladatot, adja hozzá az alábbi sort a crontab fájlhoz:

0 * /5 * * *parancs/forgatókönyv

Futtasson cron feladatot 15 percenként

A cron feladat 15 percenként történő futtatásának ütemezéséhez adja hozzá az alábbi sort a crontab fájlhoz:

* /tizenöt * * * *

A karakterláncok használata

A következő karakterláncok is használhatók egy feladat meghatározásához:

  1. @óránkénti: Egy munka elvégzése óránként egyszer, azaz 0 * * * *
  2. @éjfél: Egy feladat elvégzése naponta egyszer, azaz 0 0 * * *
  3. @napi: ugyanaz, mint éjfélkor
  4. @heti: Egy munka elvégzésére hetente egyszer, azaz 0 0 * * 0
  5. @havi: Havonta egyszer elvégezni egy munkát, azaz 0 0 1 * *
  6. @évente: Évente egyszer elvégezni egy feladatot, pl. 0 0 1 1 *
  7. @évi: ugyanaz, mint @évente
  8. @újraindítás: Egy feladat végrehajtása minden indításkor egyszer

Például egy szkript vagy parancs minden héten történő futtatásához a crontab fájl bejegyzése a következő lenne:

@heti parancs/forgatókönyv

Előre definiált Cron könyvtárak

Van néhány előre meghatározott cron könyvtár a Linuxban, ahol a tárolt szkriptek automatikusan végrehajtásra kerülnek. Ha bármilyen szkriptet elhelyezünk ezekben a könyvtárakban, akkor a rendszer automatikusan végrehajtja a beállított időpontban.

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.mhónap
  • /etc/cron.weekly

Például ha egy szkriptet havonta egyszer szeretne végrehajtani, akkor azt az /etc/cron.monthly mappába kell helyeznie.

Tekintse meg Cron Jobs munkáját

Megtekintheti az aktuális felhasználó munkáit

A következő paranccsal megtekintheti az aktuális felhasználó összes ütemezett cron -feladatát:

$crontab-az

A root felhasználók munkáinak megtekintése

A root felhasználó összes ütemezett feladatának megtekintéséhez adja ki a következő parancsot a terminálon:

$macska /stb./crontab

Be kell jelentkeznie root felhasználóként, vagy futtatnia kell a parancsot sudo néven.

Tekintse meg a többi felhasználó munkáit

Egy adott felhasználó összes ütemezett feladatának megtekintéséhez adja ki a következő parancsot a terminálban, és cserélje ki a tényleges felhasználónévvel:

$sudocrontab-u <felhasználónév> -az

A parancs futtatásához sudo jogosultságokra lesz szüksége.

Tekintse meg az óránkénti cron -feladatokat

Az óránkénti futtatásra konfigurált összes cron feladat megtekintéséhez adja ki a következő parancsot a terminálon:

$ls -az /stb./cron.óránként

Tekintse meg a napi cron feladatokat

A napi futtatásra konfigurált összes cron feladat megtekintéséhez adja ki a következő parancsot a terminálon:

$ls -az /stb./cron. naponta/

Tekintse meg a heti cron -feladatokat

A heti futtatásra konfigurált összes cron feladat megtekintéséhez adja ki a következő parancsot a terminálon:

$ls -az /stb./cron.hetente/

Tekintse meg a havi cron -feladatokat

Az összes havi futtatásra konfigurált cron feladat megtekintéséhez adja ki a következő parancsot a terminálon:

$ls -az /stb./cron.havonta/

Biztonsági mentés az összes Cron munkáról

Javasoljuk, hogy készítsen biztonsági másolatot az összes cron feladatról egy fájlban, hogy törlés esetén helyreállítsa. Az összes aktuális feladatról biztonsági másolatot készíthet az átirányítási operátorral, hogy a crontab -l kimenetét egy fájlba irányítsa át.

$crontab-az >backup_cron.txt

Az összes ütemezett Cron feladat eltávolítása

Az összes ütemezett cron feladat eltávolításához használja az -r jelzőt az alábbiak szerint:

$crontab-r

Cron engedély

Két fájlon keresztül korlátozhatjuk a crontab parancs elérését: / etc/cron.allow és/etc/cron.deny.

  • /etc/cron.allow - Adjon hozzá felhasználókat (soronként egyet), akiknek hozzáférést kíván adni a crontab parancsokhoz. Ezek a felhasználók ütemezett feladatokat futtathatnak.
  • /etc/cron.deny - Add hozzá azokat a felhasználókat (soronként egyet), akiknek meg akarod tiltani a hozzáférést a crontab parancsokhoz. Ezek a felhasználók nem futtathatnak ütemezett feladatokat.

Crontab szintaktikai generátorok

Vannak olyan webhelyek, amelyek lehetővé teszik a crontabs szintaxisának létrehozását. Ezek a webhelyek megkönnyítik a crontab kifejezés létrehozását a szintaxis emlékezése nélkül. Bár különféle webhelyek állnak rendelkezésre a szintaktikai generátorokhoz, mint pl crontabgenerator.com , crontab-generator.org , és cronmaker.com . Az egyik, amit leginkább preferálok és hasznosnak találtam, az crontab.guru . A felhasználói adatok alapján egy crontab kifejezést generál, amelyet másolhat és beilleszthet a crontab fájlba.

Következtetés

Ebben az oktatóanyagban elmagyaráztuk a cron jobok alapjait, szintaxisát és beállítását. Azt is megbeszéltük, hogyan tekinthetjük meg a cron feladatokat, hogyan készíthetünk biztonsági másolatot, és távolíthatjuk el azokat, ha már nincs rájuk szükség.