Bevezetés
A cron nevű démon Linux alatt működik, amelyet rendszeres időközönként futtatnak.
Ennek módja, hogy ellenőrizze a rendszer egyes mappáit a parancsfájlok futtatásához. Például van egy /etc/cron.hourly mappa, /etc/cron.daily, /etc/cron.weekly és /etc/cron.monthly. Létezik egy / etc / crontab nevű fájl is.
Alapértelmezés szerint egyszerűen elhelyezhetsz parancsfájlokat a megfelelő mappákba, hogy rendszeres időközönként el tudj végezni őket.
Például nyisson egy terminál ablakot (a CTRL, ALT és T gombok megnyomásával), é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 a napi azt jelenti, hogy a szkript naponta egyszer fut, de nincs ellenõrzése az idõ alatt, hogy a szkript futni fog ezen a napon.
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. Például lehet, hogy a fájlokat minden este 18 órakor szeretné menteni.
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 több crontab fájl létezését keresi, és mindezeken keresztül fut.
Annak ellenőrzéséhez, hogy van-e crontab fájlod, futtassa a következő parancsot:
crontab -l
Ha nincs crontab fájlod, a "no crontab for
A crontab fájl létrehozásához vagy szerkesztéséhez hajtsa végre a következő parancsot:
crontab -e
Alapértelmezés szerint, ha nincs beállítva alapértelmezett szerkesztő, akkor meg kell adnia a használni kívánt alapértelmezett szerkesztőt. Személy szerint szeretem a nano használatát, mivel meglehetősen egyszerűen használják, és fut a terminálból.
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).
# mh 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 /
Amit a fenti parancs mond: 30 perc, 18 óra, a hét minden napja, hónapja és napja futtat egy parancsot a zip könyvtárra és a ház könyvtárat a / var / backups mappába.
Ahhoz, hogy parancsot futtasson 30 perc múlva minden órában, a következő parancsot futtathatom:
30 * * * * parancs
Ahhoz, hogy egy parancsot futtasson minden perc múlva 18:00 óráig, a következő parancsot futtathatom:
* 18 * * * parancs
Ezért óvatosnak kell lennie a crontab parancsok beállításához.
Például:
* * * 1 * parancs
A fenti parancs januárban minden héten minden nap minden órájában futni fog. Kétlem, hogy ezt akarja.
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 kívánja 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
Ez megkérdezi a kérdést: "Biztos vagy benne?" mielőtt eltávolítaná a crontab fájlt.