Cron
Ez a cikk leírja, hogy miként lehet beállítani és használni a cron szolgáltatásokat a Gentoo Linux operációs rendszeren.
Cron alapok
Mit csinál a cron?
A cron egy szolgáltatás, amely ütemezett feladatokat hajt végre a crontab parancs által kapott bemenet alapján. Ezt a feladatot úgy végzi el, hogy percenként felébred, és ellenőrzi, vannak-e olyan cron-feladatok a felhasználói crontabokban, amelyeket futtatni kell.
Vegye figyelembe, hogy a crontab egyszerre a cron-feladatok listájának neve, valamint annak a parancsnak a neve, amellyel a listát szerkesztheti.
Amikor a systemd init rendszert használja, a (persistent) timers elérhetők, mint az (ana)cron helyettesítője.
Cron a gyakorlatban
Több cron implementáció közül választhat a Portage szoftvercsomag-kezelőben. Mindegyik hasonló interfészt kínál, nevezetesen a crontab vagy egy hasonló parancs használatával. Létezik még egy kapcsolódó segédprogram is, az Anacron, amely olyan operációs rendszerek esetén használható, amelyek nem futnak folyamatosan.
Minden elérhető cron szoftvercsomag a sys-process/cronbase csomagra épít. Ez a szoftvercsomag technikailag egyik cron szoftvercsomag függősége sem, ám cron-szerű funkcionalitást nyújt, amelyet a legtöbb felhasználó értékel.
Mielőtt elkezdené a cron használatát, Önnek ki kell választania a megfelelő cron implementációt.
Melyik cron a megfelelő a munkához?
Annak érdekében, hogy az alapértelmezett cron implementációt megkapja, telepítse az emerge parancs segítségével a virtual/cron szoftvercsomagot.
cronie
A sys-process/cronie szoftvercsomag a tiszteletreméltó vixie-cron fejlesztési elágazása, mely a [1] címen érhető el. Mivel ez egy fejlesztési elágazás, ezért ugyanazt a funkciókészletet biztosítja, amellyel az eredeti vixie-cron is rendelkezik. Ezenfelül a cronie egy anacron implementációval is érkezik, amely alapértelmezés szerint az anacron
USE jelölőzászló révén engedélyezett. Legyen figyelemmel a beállítás különbségekre, ahogy azt a bug #551352 megjegyzi, amikor egy másik cron rendszerből migrál. Előfordulhat, hogy a várt feladatok egyáltalán nem futnak le.
dcron (Dillon's Cron)
A sys-process/dcron szoftvercsomag célja, hogy egy egyszerű, elegáns és biztonságos cron megvalósítás legyen. Nem engedi meg a környezeti változók megadását a crontabokban, és minden cron-feladat a /bin/sh-ból kerül végrehajtásra. Mint a vixie-cron esetében, minden felhasználónak saját crontabja van. A 4-es verziótól kezdve anacron-szerű funkciókat tartalmaz.
A sys-process/dcron szoftvercsomag jellemzői:
- Gyors, egyszerű és mentes a felesleges funkcióktól.
- A crontab elérése a cron csoportra korlátozódik, azaz nem támaszkodik semmilyen külső képességre.
fcron
A sys-process/fcron szoftvercsomag célja, hogy helyettesítse a vixie-cront és az anacront. Olyan operációs rendszerekre lett tervezve, amelyek nem futnak folyamatosan, és az fcron számos extra funkcióval van ellátva. Rendelkezik feladatindítási korlátozásokkal, feladatok sorosításának vezérlésével, lehetőséget biztosít a feladatokhoz nice értékek hozzárendelésére, valamint arra is lehetőséget ad, hogy a feladatokat rendszerindításkor ütemezze.
A sys-process/fcron szoftvercsomag jellemzői:
- Olyan rendszerekre lett tervezve, amelyek nem futnak folyamatosan, azaz, ha kimarad egy feladat, azt az operációs rendszer újraindítása után képes lefuttatni.
- Környezeti változók és számos egyéb opció beállítása a crontabokban.
- Kibővített crontab-szintaxis számos új funkció támogatásával.
- Minden felhasználó rendelkezhet személyes crontabbal, melynek hozzáférését a cron.allow és a cron.deny szabályozza.
bcron
sys-process/bcron egy új cron rendszer, amelyet a biztonságos működés szem előtt tartásával terveztek. Ennek érdekében a rendszer több különálló programra van osztva, amelyek mindegyike egy-egy feladatért felelős, és közöttük a kommunikáció szigorúan ellenőrzött. A felhasználói felület a hasonló rendszerek (például a vixie-cron) közvetlen helyettesítője, azonban a belső működés jelentősen eltér.
A sys-process/bcron szoftvercsomag jellemzői:
- Helyettesítő megoldás a vixie-cron számára.
- Többfolyamatos kialakítás.
- Natív nyári időszámítás támogatása.
anacron
Anacron nem egy cron szolgáltatás, hanem olyasmi, amely általában egy ilyennel együttműködik. Parancsokat hajt végre olyan időközönként, amelyeket napokban határoznak meg, és nem feltételezi, hogy az operációs rendszer folyamatosan fut. Az operációs rendszer leállása idején kimaradt feladatokat is végrehajtja. Az Anacron általában egy cron szolgáltatástól függ, hogy naponta lefusson.
Cron használata
Telepítés
Válassza ki a megfelelő cron megvalósítást a feladathoz, majd az emerge segítségével telepítse a szoftvercsomagot:
root #
emerge --ask dcron
Bizonyosodjon meg arról, hogy a választott cron szolgáltatás hozzá lett adva az operációs rendszer init folyamatához. Ennek a lépésnek a hiányában a cron szolgáltatás nem fogja ellátni a feladatát.
root #
/etc/init.d/dcron start
root #
rc-update add dcron default
Opcionálisan, ha az Fcron vagy a dcron nem kerültek telepítésre, akkor az Anacron telepítése, mint a cron szolgáltatás segédprogramja, jó döntés lehet.
root #
emerge --ask anacron
Ismételten, ne feledje el hozzáadni az anakron-t az operációs rendszer indítási folyamatához.
root #
/etc/init.d/anacron start
root #
rc-update add anacron default
Az anacron esetében általában nincs init folyamat. Helyette az anacron-t egy másik cron megvalósításon keresztül kell elindítani.
Az egyik módszer az, hogy az anacron-t egy cron definíción keresztül indítják el. Alapértelmezés szerint egy óránként futtatandó szkriptet telepít, amelyet a legtöbb cron implementáció használ. Ha ez nem áll fenn, akkor manuális definíciókon keresztül is elindítható:
/etc/crontab
Anakron elindítása cron definíción keresztül# Az anakron elindítása 10 percenként.
*/10 * * * root /usr/sbin/anacron
# Alternatív megoldásként az anacron által biztosított 0anacron szkript óránkénti futtassa.
# 59 * * * * root /etc/cron.hourly/0anacron
System crontab
A telepítést követő üzenetek néhány cron szoftvercsomag esetében arra utasítják a felhasználót, hogy futtassa a crontab /etc/crontab parancsot. Az /etc/crontab fájl a rendszer crontabja. Egy cron telepítés a sys-process/cronbase szoftvercsomaggal együtt használhatja azt a /etc/cron.{daily,hourly,weekly,monthly} könyvtárakban található szkriptek futtatásához. Vegye figyelembe, hogy csak a cronie ütemezi automatikusan a feladatokat az /etc/crontab fájlban. A dcron használóknak minden alkalommal futtatniuk kell a crontab /etc/crontab parancsot, amikor változás történik az /etc/crontab fájlban, míg az fcron használóknak a rendszer crontab beállítása érdekében a emerge --config sys-process/fcron parancsot kell végrehajtaniuk.
Vegye figyelembe annak előfordulási lehetőségét, hogy a rendszer crontabban ütemezett feladatok, nem jelennek meg a crontab -l parancs által megjelenített cron-feladatok listájában.
Természetesen a felhasználók dönthetnek úgy, hogy egyáltalán nem használják a rendszer crontabot. Ha dcron vagy fcron lett kiválasztva, akkor ne futtassa a crontab /etc/crontab parancsot. Ha cronie vagy bcron lett kiválasztva, akkor kommentelje ki az összes sort az /etc/crontab fájlban.
Egy gyors és egyszerű módja annak, hogy egy fájl minden sorát kikommentelje, a sed parancs használata. Futtassa a következő parancsot a etc/crontab minden sorának kikommenteléséhez.
root #
sed -i -e "s/^/#/" /etc/crontab
Hozzáférést biztosítása a cron-hoz a megbízható felhasználók számára
Amennyiben Ön nem root felhasználó, és hozzá kíván férni a cron szolgáltatáshoz, akkor olvassa el ezt a részt, egyébként folytassa a következő részt.
Másik felhasználó számára adott crontab-hozzáférés nem teszi lehetővé, hogy az illető root-ként futtassa a cron-feladatokat. Ha egy felhasználó számára szükséges, hogy a root crontabot szerkeszthesse, akkor fontolja meg a sudo (app-admin/sudo) használatát. Kérjük Önt, hogy olvassa el a Gentoo Sudo(ers) Guide leírást a további részletekért.
Függetlenül attól, hogy melyik cron csomag lett kiválasztva, ahhoz, hogy egy felhasználó használhassa a crontabot, először a cron csoport tagjának kell lennie. Példaként, hogy a orbanviktor felhasználót hozzáadja a cron csoporthoz, futtassa az alábbi parancsot:
root #
gpasswd -a orbanviktor cron
Amikor egy felhasználót a cron csoporthoz ad hozzá, győződjön meg arról, hogy a felhasználó kijelentkezik, majd újra bejelentkezik, annak érdekében, hogy a csoportváltozás életbe léphessen.
dcron
Amennyiben dcron szoftvercsomagot használ, akkor a fenti lépés elegendő ahhoz, hogy egy felhasználónak hozzáférést biztosítson a crontab-hoz. A dcron felhasználók léphetnek a következő részhez, míg a többi felhasználónak tovább kell olvasnia.
fcron
Az fcron használata esetén szerkessze a /etc/fcron/fcron.deny és a /etc/fcron/fcron.allow fájlokat. Az operációs rendszer legbiztonságosabb üzemeltetésének módja, ha először minden felhasználót kizár az /etc/fcron/fcron.deny fájlban, majd kifejezetten engedélyezi akit kell az /etc/fcron/fcron.allow fájlban.
Ha az /etc/fcron/fcron.allow és a /etc/fcron/fcron.deny fájl se nem létezik, akkor a cron csoport összes tagja hozzáférést kap a crontab használatához. Az fcron alapértelmezettként egy fcron.allow fájllal érkezik, amely minden felhasználónak engedélyezi az fcrontab használatát a cron csoportban.
all
Annak érdekében, hogy egy felhasználó (a példában orbanviktor) képes legyen a saját cron-feladatait ütemezni, adja hozzá őt a /etc/fcron/fcron.allow fájlhoz az alábbi módon:
orbanviktor
cronie
Amennyiben Ön a cronie szoftvert választotta, akkor egyszerűen szerkessze az /etc/cron.allow fájlt.
Fontos megjegyezni, hogy ha csak az /etc/cron.allow létezik, akkor csak az abban felsorolt cron csoportbeli felhasználók kapnak hozzáférést. Ezzel szemben, ha csak egy üres /etc/cron.deny fájl van, akkor minden cron csoportbeli felhasználó jogosult lesz a használatra. Ne hagyja üresen az /etc/cron.deny fájlt, ha nincs meglévő /etc/cron.allow fájl!
Például, annak érdekében, hogy az orbanviktor felhasználó hozzá legyen adva az /etc/cron.allow fájlhoz, futtassa a következő parancsot:
orbanviktor
Cron-feladatok ütemezése
A crontabok szerkesztése szoftvercsomagonként tér el, de mindegyik támogatja ugyanazt az alapvető parancskészletet: crontabok hozzáadása és lecserélése, a crontabok szerkesztése, törlése, valamint a crontabokban ütemezett cron-feladatok listázása. Az alábbi lista bemutatja, hogy az szoftvercsomagok esetében miként futtathatók a különböző parancsok.
Verzió | Crontab szerkesztése | Crontab eltávolítása | Új crontab | Cron-feladatok listázása |
---|---|---|---|---|
dcron | crontab -e | crontab -d [user] | crontab file | crontab -l |
fcron | fcrontab -e | fcrontab -r [user] | fcrontab file | fcrontab -l |
cronie és bcron | crontab -e | crontab -r -u [user] | crontab file | crontab -l |
Amennyiben nem ad meg argumentumot a törlési parancs használata esetén, akkor az aktuális felhasználó crontabját törli.
Az fcron szoftvernek van egy szimbolikus linkje is a crontabról az fcrontab szoftverre.
Mielőtt bármelyik ilyen parancs használható lenne, először meg kell ismerkedni a crontab felépítésével. Egy crontab minden sora öt időmezőt határoz meg a következő sorrendben: percek (0–59), órák (0–23), a hónap napjai (1–31), hónapok (1–12) és a hét napjai (0–7, ahol a hétfő az 1-es, a vasárnap pedig a 0-ás vagy 7-es nap). A hét napjai és a hónapok megadhatók hárombetűs rövidítésekkel, például mon, tue, jan, feb stb. Minden mezőben megadható egy értéktartomány (pl. 1–5 vagy mon–fri), egy vesszővel elválasztott értéklista (pl. 1,2,3 vagy mon,tue,wed) vagy egy lépésközzel ellátott értéktartomány (pl. 1–6/2, ami 1, 3, 5 értékeket jelent).
Ez kissé zavarosnak tűnik, de néhány példa alapján könnyen látható, hogy nem olyan bonyolult, mint amilyennek elsőre hangzik.
# A /bin/false parancs futtatása minden percben egész évben.
* * * * * /bin/false
# A /bin/false parancs futtatása 1:35-kor hétfőn, kedden, szerdán és negyedikén minden hónapban.
35 1 4 * mon-wed /bin/false
# A /bin/true parancs futtatása 22:25-kor március másodikán.
25 22 2 3 * /bin/true
# A /bin/false parancs futtatása 2:00-kor minden hétfőn, szerdán és pénteken.
0 2 * * 1-5/2 /bin/false
Vegye figyelembe, hogy a hét napjait és a hónap napjait külön-külön kell megadni, mielőtt azok kombinálva lennének. Ha csak az egyik esetében használja a * karaktert, akkor a másik mező értéke kap elsőbbséget, míg ha mindkettőben * szerepel, akkor az egyszerűen minden napot jelent.
Ahhoz, hogy kipróbálja azt, amit most ismertettünk, kövese az alábbi lépéseket a cron-feladatok tényleges beillesztéséhez. Először hozzon létre egy crons.cron nevű fájlt, és alakítsa úgy, hogy a következőképpen nézzen ki:
crons.cron
Egy crons.cron fájl készítése# Per Óra Nap Hónap Hét_napjai
10 3 1 1 * /bin/echo "Nem szeretem a cron szoftvert."
30 16 * 1,2 * /bin/echo "Kicsit szeretem a cron szoftvert."
* * * 1-12/2 * /bin/echo "Imádom a cron szoftvert."
Most adja hozzá azt a crontabot az operációs rendszerhez az előző táblázatban szereplő "new command" parancs segítségével.
root #
crontab crons.cron
Az echo parancsok kimenete nem lesz látható, kivéve ha átirányítást használ.
Az ütemezett cron-feladatok ellenőrzéséhez használja az előző táblázatban szereplő megfelelő list command-ot.
root #
crontab -l
Egy, a crons.cron-hoz hasonló lista jelenik meg. Ha nem ez történik, akkor talán hibás parancsot adott ki a crontab beillesztéséhez.
Ez a crontab minden percben, minden órában, minden nap minden második hónapban kiírja, hogy "Imádom a cron szoftvert.". Nyilvánvaló, hogy egy felhasználó csak akkor tenné ezt ha igazán szeretné a cron szoftvert. A crontab emellett minden nap 16:30-kor januárban és februárban kiírja "Kicsit szeretem a cron szoftvert.". Emellett január 1-én 3:10-kor kiírja "Nem szeretem a cron szoftvert.".
Ha anacron szoftvert használ, akkor folytassa ennek a résznek az olvasását. Ellenkező esetben lépjen a Crontab-ok szerkesztése című következő szakaszra.
Az anacron használók az /etc/anacrontab fájlt kívánják szerkeszteni. Ez a fájl négy mezőt tartalmaz: az egyes futtatások közötti napok számát, a futtatás után eltelt percekben megadott késleltetést, a feladat nevét, valamint a futtatandó parancsot.
Például, ha azt szeretné, hogy az anacron a echo "Szeretem az anacron szoftvert." parancsot 5 naponta, az anacron indítása után 10 perccel futtassa, akkor írja be a következőt:
/etc/anacrontab
5 10 wasting-time /bin/echo "Szeretem az anacron szoftvert."
Az anacron kilép, miután az anacrontab összes feladata befejeződött. Annak ellenőrzésére, hogy ezeket a feladatokat minden nap el kell-e végezni, egy cron szolgáltatás lesz használva. A következő szakasz végén található utasítások ismertetik, hogy miként kell ezt kezelni.
Crontab-ok szerkesztése
Reálisan nézve, egyetlen felhasználó sem szeretné, ha az operációs rendszere percenként közölné vele, mennyire kedveli a cron szoftvert. Következő lépésként távolítsa el a korábbi példában szereplő crontab bejegyzést a fentebb található táblázatban megadott megfelelő eltávolítási parancs használatával. Ezután használja a megfelelő listázási parancsot a cron-feladatok megtekintéséhez, hogy megbizonyosodjon arról, hogy a művelet sikeres volt.
root #
crontab -d
root #
crontab -l
A crontab -l parancs kimenetében nem szabadna megjelenniük cron-feladatoknak. Ha cron-feladatok mégis megjelennek, akkor az eltávolítási parancs nem tudta törölni a crontab bejegyzést. Ebben az esetben ellenőrizze a rendszer cron szoftvercsomagjához tartozó helyes eltávolítási parancsot.
Mivel most már kitisztított állapotban vagyunk, tegyünk bele valami hasznosat a root crontab fájlba. A legtöbb ember hetente egyszer szeretné futtatni a updatedb parancsot, hogy biztosítsa az mlocate megfelelő működését. Ennek hozzáadásához az operációs rendszer crontab fájljához először szerkessze újra a crons.cron fájlt úgy, hogy az az alábbi módon nézzen ki:
22 2 * * 1 /usr/bin/updatedb
Ez azt eredményezné, hogy a cron hetente hétfőn hajnal 2:22-kor futtatja az updatedb parancsot. Most vigye be a crontabot a megfelelő új parancs segítségével a fent említett táblázatból, és ellenőrizze újra a listát.
root #
crontab crons.cron
root #
crontab -l
Tegyük fel, hogy a emerge --sync parancsot naponta kellene futtatni a Portage fa naprakészen tartása érdekében. Ezt úgy lehetne megtenni, hogy először szerkeszti a crons.cron fájlt, majd használja a crontab crons.cron parancsot, ahogy a fenti példában is történt, vagy a táblázatból származó megfelelő szerkesztési parancs alkalmazásával. Ez lehetőséget nyújt arra, hogy a felhasználó crontabját közvetlenül szerkessze, anélkül hogy külső fájlokra, mint például a crons.cron, kellene támaszkodni.
root #
crontab -e
A fenti parancsnak meg kellene nyitnia a felhasználó crontabját egy szerkesztőben. Például, ha a emerge --sync parancsot minden nap reggel 6:30-kor kell futtatni, akkor a crontab valahogy így nézzen ki:
22 2 * * 1 /usr/bin/updatedb
30 6 * * * /usr/bin/emerge --sync
## (Ha az anacron van használva, akkor adja hozzá a következő sort.)
30 7 * * * /usr/sbin/anacron -s
Ismételten ellenőrizze a cron-feladatok listáját, ahogy a korábbi példákban is tette, hogy meggyőződjön arról, hogy a feladatok ütemezve vannak. Ha minden rendben van, akkor az ütemezőrendszer készen áll arra, hogy működésbe lépjen.
Cronbase használata
Amint azt korábban említettük, az összes elérhető cron szoftvercsomag a sys-process/cronbase szoftvercsomagtól függ. A cronbase szoftvercsomag létrehozza a /etc/cron.{hourly,daily,weekly,monthly} könyvtárakat és a run-crons nevű szkriptet. Vegye észre, hogy az alapértelmezett /etc/crontab fájl valami ilyesmit tartalmaz:
*/15 * * * * test -x /usr/sbin/run-crons && /usr/sbin/run-crons
0 * * * * rm -f /var/spool/cron/lastrun/cron.hourly
0 3 * * * rm -f /var/spool/cron/lastrun/cron.daily
15 4 * * 6 rm -f /var/spool/cron/lastrun/cron.weekly
30 5 1 * * rm -f /var/spool/cron/lastrun/cron.monthly
Annak részletesebb kifejtése nélkül feltételezhetjük, hogy ezek a parancsok ténylegesen futtatják az óránkénti, napi, heti és havi szkripteket. Ez a cron-feladatok ütemezésének módszere számos fontos előnnyel jár:
- Ezek a feladatok akkor is futni fognak, ha a számítógép ki volt kapcsolva az ütemezett futtatás időpontjában.
- A szoftvercsomag karbantartók könnyedén elhelyezhetik a szkripteket ezekben a jól meghatározott helyeken.
- Az adminisztrátorok pontosan tudják, hogy hol vannak tárolva a cron-feladatok és a crontab, ami megkönnyíti ezeknek a rendszer részeinek a biztonsági mentését és visszaállítását.
Ismételten érdemes kiemelni, hogy a cronie és a bcron automatikusan olvassa a /etc/crontab fájlt, míg a dcron és az fcron nem. További információért olvassa el a System crontab szekciót.
Anacron használata
Amint azt korábban említettük, az anacron szoftvert olyan operációs rendszereken használják, amelyek nem folyamatos üzemelésre vannak tervezve (például a legtöbb asztali telepítés esetében). Az alapértelmezett beállításfájlja, a /etc/anacrontab, általában a következőhöz hasonló:
/etc/anacrontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# format: period delay job-identifier command
1 5 cron.daily run-parts /etc/cron.daily
7 10 cron.weekly run-parts /etc/cron.weekly
30 15 cron.monthly run-parts /etc/cron.monthly
A fő különbség az anacron és más általános crontabok között az, hogy az anacron esetében nincs meghatározott dátum/óra a feladatütemezéshez, csak a futtatások közötti időszak van megadva. Amikor az anacron elindul, ellenőrzi a /var/spool/anacron könyvtárban található fájlok tartalmát, és kiszámítja, hogy a beállításfájl megfelelő bejegyzése lejárt-e az utolsó futtatás óta. Ha lejárt, akkor a parancsot ismét futtatja.
Végezetül fontos megjegyezni, hogy kommentelje ki az operációs rendszeren feltelepített bármely más cronban található átfedő bejegyzéseket, például az alábbi vixie-cron crontab példában:
/etc/crontab
# for cronie
# Globális változók
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# Szkriptek ellenőrzése a cron.hourly, cron.daily, cron.weekly, és cron.monthly könyvtárakban.
59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
#9 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily
#19 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
#29 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
#*/10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons
@hourly root test ! -e /var/spool/cron/lastrun/cron.hourly && touch /var/spool/cron/lastrun/cron.hourly && run-parts --report /etc/cron.hourly
Ha ezt nem tesszük meg, akkor a napi, heti és havi részeket – különböző időpontokban – mind a cron szolgáltatás, mind az anacron végrehajtja, ami lehetséges, hogy dupla feladatvégrehajtáshoz vezet.
Hibaelhárítás
Amikor problémák merülnek fel a cron megfelelő működésével kapcsolatban, ez a gyors ellenőrző lista hasznos lehet.
Ne feledje, hogy minden cron szoftvercsomag más, és a funkciók köre jelentősen eltérhet. Feltétlenül tekintse át a crontab, fcrontab vagy anacrontab kézikönyv oldalait, attól függően, hogy melyik cron szolgáltatást aktiválja!
Fut-e a cron?
Annak ellenőrzéséhez, hogy a cron fut-e, nézze meg, hogy megjelenik-e a folyamatlistában:
user $
ps ax | grep cron
A '/var/spool/cron/crontabs' nem könyvtár
Győződjön meg arról, hogy a felhasználó szerepel a "cron" csoportban. Ne feledje, hogy jelentkezzen ki és jelentkezzen be újra, hogy a csoportváltozások életbe lépjenek. Ha ez nem működött, akkor ellenőrizze, hogy a felhasználónév szerepel-e a /etc/cron.allow fájlban. Ha ez sem működik, akkor állítsa be a crontabot suid root jogosultságúra.
root #
chmod u+s /usr/bin/crontab
Működik-e a cron?
Próbálja meg a következőt:
* * * * * /bin/echo "foobar" >> /tmp/file_you_own.log
Ezután ellenőrizze, hogy a /tmp/file_you_own.log fájl időszakosan módosul-e.
Működik-e a parancs?
Ugyanúgy, mint korábban, de talán irányítsa át a standard hiba kimenetet is:
* * * * * /bin/echo "foobar" >> /tmp/file_you_own 2>&1
Tudja-e a cron futtatni a feladatot?
Ellenőrizze a cron naplót, általában a /var/log/cron.log vagy az /var/log/messages hibákat keresve.
Van-e bármilyen dead.letter?
A cron általában e-mailt küld, ha probléma merül fel. Ellenőrizze az e-maileket, és keresse meg a ~/dead.letter fájl létrehozását.
Miért nem küld a cron leveleket?
Annak érdekében, hogy a cron e-maileket tudjon küldeni, érvényes MTA (Mail Transfer Agent) beállítást kell megvalósítani. Ezt bármelyik szoftvercsomag biztosítja a virtual/mta kategóriából.
Ha a cron e-mailek csak helyben kerülnek kiküldésre, és nem egy teljesen beállított levelezőszerveren keresztül, akkor az operációs rendszer használhat mbox (/var/spool/mail) típusú e-maileket. Ehhez engedélyezni kell az mbox useflag-et azzal a megfelelő szoftvercsomaggal, amely biztosítja az MTA-t.
Külső források
- https://crontab.guru/
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Eric Brown, Xavier Neys,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.