Skip to main content

A Linux Crontab fájl szerkesztése a munkák ütemezéséhez

CRON - task scheduling in linux (Április 2025)

CRON - task scheduling in linux (Április 2025)
Anonim

Egy démon Linuxban hívott cron rendszeres időközönként végzi a folyamatokat. Megvizsgál bizonyos mappákat a rendszeren, hogy a szkriptek egy sor mappában fussanak, beleértve az /etc/cron.hourly fájlt, /etc/cron.daily, /etc/cron.weekly és /etc/cron.monthly. Létezik egy / etc / crontab nevű fájl is.

A parancsfájlok elhelyezése a Cron mappákban

Egyszerűen elhelyezhetsz parancsfájlokat a megfelelő mappákba, hogy rendszeres időközönként fusson.

Például nyisson meg egy terminál ablakot, és futtassa a következő ls parancsot:

ls / etc / cron *

Megjelenik a programok vagy parancsfájlok óránkénti, napi, heti és havonta futó listája.

A baj ezekkel a mappákkal, hogy egy kicsit homályos. Például, napi azt jelenti, hogy a szkript naponta egyszer fut, de nincs ellenõrzése a szkript futtatásának idõpontjában.

Itt jön be a crontab fájl.

A crontab fájl szerkesztésével egy szkriptet vagy programot futtathat a pontos dátumra és időre, ahányszor futni akarsz.

Engedélyek

A crontab parancs megköveteli, hogy a felhasználó jogosult legyen egy crontab fájl szerkesztésére. Alapvetően két fájl található a crontab jogosultságok kezelésére:

  • /etc/cron.allow
  • /etc/cron.deny

Ha a /etc/cron.allow fájl létezik, akkor a crontab fájlt szerkesztő felhasználónak ebben a fájlban kell lennie. Ha a cron.allow fájl nem létezik, de létezik egy /etc/cron.deny fájl, akkor a felhasználónak nem szabad létenie a fájlban. Ha mindkét fájl létezik, akkor a /etc/cron.allow felülbírálja az /etc/cron.deny fájlt. Ha egyik fájl sem létezik, akkor a rendszer konfigurációjától függ, hogy a felhasználó szerkesztheti-e a crontab-ot.

A root felhasználó mindig szerkesztheti a crontab fájlt. A su paranccsal a root felhasználóra vagy a sudo parancsra ugorhat a crontab parancs futtatásához.

A Crontab fájl szerkesztése

Minden jogosultsággal rendelkező felhasználó saját crontab fájlt hozhat létre. A cron parancs alapvetően minden crontab fájlt keres, és végigfut minden.

Annak ellenőrzéséhez, hogy van-e crontab fájlod, futtassa a következő parancsot:

crontab -l

Ha nincs egy crontab fájljában az "no crontab for message" üzenet "megjelenik, ellenkező esetben a crontab fájl megjelenik (ez a funkció különbözik a rendszerről a rendszerre, néha semmit sem jelenít meg, és máskor nem jelenik meg," ne módosítsa ezt a fájlt ").

A crontab fájl létrehozásához vagy szerkesztéséhez hajtsa végre a következő parancsot:

crontab -e

A megnyíló fájlnak sok információja van, de a legfontosabb rész a kommentárok vége előtt található példa (a megjegyzéseket a # -al kezdődő sorok jelölik).

# m h dom mon dow parancs

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

A crontab fájl minden egyes sorára 6 információ található:

  • A parancs végrehajtásának napja (m)
  • A parancs végrehajtásának napja (h)
  • A hónap napja, amikor a parancs fut (dom)
  • A parancs futtatásának hónapja (hónap)
  • A hét napja a parancs futtatása (dow)
  • A parancs

Minden egyes elemhez (kivéve a parancsot) meg lehet adni egy helyettesítő karaktert. Nézze meg a következő példát: crontab vonal:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

30 perccel, 18 órával és a nap minden napján, hónapjában és napjában ez a crontab bejegyzés a zip könyvtárat és a home könyvtárat a / var / backups mappába zárolja.

Ahhoz, hogy parancsot futtasson 30 perc múlva minden órában, futtassa a következő parancsot:

30 * * * * parancs

Ahhoz, hogy egy parancsot futtasson minden percben, mint 6 óra, futtassa a következő parancsot:

* 18 * * * parancs

Ezért óvatosnak kell lennie a crontab parancsok beállításához.

Például:

* * * 1 * parancs

Ez a parancs januárban minden héten minden nap minden órájában fut.

Egy parancs futtatásához január 1-jén 5 órakor a crontab fájlt a következő paranccsal hajtotta végre:

0 5 1 1 * parancsot

Crontab fájl eltávolítása

Az idő nagy részében nem kívánja eltávolítani a crontab fájlt, de lehet, hogy bizonyos sorokat eltávolít a crontab fájlból.

Ha azonban el szeretné távolítani a felhasználó crontab fájlját, futtassa a következő parancsot:

crontab -r

Ennek biztonságosabb módja a következő parancs futtatása:

crontab -i

Az operációs rendszer kéri az ellenőrzést, mielőtt eltávolítja a crontab fájlt.