Cronjob vagy ütemezett feladat létrehozása (és mi a teendő, ha nem fut le)
Egy cronjob (a DirectAdminban: Cron Jobs) segítségével egy szkriptet automatikusan, meghatározott időpontokban futtathat, például minden éjjel. Az alábbiakban bemutatjuk, hogyan hozhat létre egyet, és mi a teendő, ha nem működik.
A cronjobokra vonatkozó szabályok
- Egy feladat legfeljebb 10 percenként egyszer induljon. Ezt minden ügyfelünktől kérjük, mivel a szervert más weboldalakkal közösen használja.
- Több cronjob esetén ossza el azokat időben, és válasszon csendes időpontot, például 03:17-et pontosan éjfél helyett.
- A szervert hosszan terhelő, erőforrás-igényes cronjobok nem engedélyezettek. Ugyanazon a szerveren több weboldal is fut. Szükség esetén leállítunk egy cronjobot. Ezért tartsa feladatait rövidre, és ne futtassa őket a szükségesnél gyakrabban.
Cronjob létrehozása
- Jelentkezzen be a DirectAdminba, majd az Advanced Features részben kattintson a Cron Jobs menüpontra.
- Kattintson a Create Cron Job gombra.
- Adja meg a percet, az órát, a napot, a hónapot és a hét napját. A percnél soha ne adjon meg csak egy csillagot, különben a feladat minden percben lefut. Adjon meg egy számot, vagy például
*/15értéket a 15 percenkénti futtatáshoz. - A parancsnál adja meg a teljes elérési utat, például:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
A gebruiker helyére írja be DA-felhasználónevét. - Kattintson a Create gombra.

E-mail minden cronjob után
A cronjob kimenete a csomagja alapértelmezett e-mail-fiókjába kerül, lásd: Az alapértelmezett e-mail-fiók a DirectAdminban. A kimenetet saját címre is küldheti a Send all Cron output to E-Mail beállítással. Ha nem kér e-mailt, a létrehozáskor kattintson a Prevent E-Mail lehetőségre, vagy írja a parancs végére:
>/dev/null 2>&1
Mire figyeljen PHP-szkriptek esetén
Egy cronjobból futtatott szkript nem tudja, melyik domain alatt fut. A $_SERVER['SERVER_NAME'] és a $_SERVER['DOCUMENT_ROOT'] üres, és egy relatív elérési úttal megadott include sikertelen lehet. Ezért helyezze el a következőt a szkriptje elején:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
WordPress: WP-Cron valódi cronjobbal
A WordPress saját ütemezővel rendelkezik, ez a WP-Cron, amely olyan feladatokat végez, mint az ütemezett bejegyzések közzététele, a frissítések ellenőrzése és a bővítmények feladatai. Ez nem meghatározott időpontokban fut, hanem csak akkor, amikor valaki felkeresi a weboldalát. Kevés látogató esetén a feladatok így késnek, sok látogató esetén pedig minden látogatás egy kis többletidőt igényel. Egy hagyományos cronjobbal a WP-Cron meghatározott időpontokban fut.
- Írja be a
wp-config.phpfájlba, a/* That's all, stop editing! */sor fölé:define( 'DISABLE_WP_CRON', true );
- Hozzon létre a Cron Jobs menüpontban egy feladatot, amely például 15 percenként fut: a percnél adja meg a
*/15értéket, az órához, a naphoz, a hónaphoz és a hét napjához pedig egy csillagot. A parancs:/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/wp-cron.php >/dev/null 2>&1
Ha a WordPress egy almappában található, adja hozzá azt az elérési úthoz. - Másnap ellenőrizze a WordPressben az Eszközök › Webhely egészsége menüpontban, hogy nincsenek-e késésben lévő ütemezett feladatokra vonatkozó figyelmeztetések.
Itt is tartsa be a legfeljebb 10 percenkénti egyszeri futtatást. A legtöbb weboldal számára elegendő a 15 vagy 30 percenkénti futtatás.
Nem fut a cronjobja?
Ellenőrizze egyenként az alábbi pontokat:
- Olvassa el a kimenetet. Ideiglenesen távolítsa el a
>/dev/null 2>&1részt, és nézze meg az e-mailt az alapértelmezett e-mail-fiókban, vagy állítson be saját címet. Ott gyakran pontosan szerepel, mi a hiba. A kimenetet naplófájlba is írhatja, ha a parancs végére a>> /home/gebruiker/cron-log.txt 2>&1részt illeszti. - Ellenőrizze az elérési utat. A Could not open input file üzenet azt jelenti, hogy a szkript elérési útja helytelen. Nézze meg a Fájlkezelőben: az elérési út a
/home/gebruiker/domains/résszel kezdődik. - Ellenőrizze a PHP-verziót. A
/usr/local/bin/phphasználatával a feladat ugyanazt a PHP-verziót használja, mint a weboldala. Ha a szkriptje csak egy másik verzión működik, módosítsa azt a Select PHP version menüpontban. - Tesztelje a parancsot kézzel. Ha csomagja tartalmazza a Terminalt, illessze be oda a parancsot, és nézze meg, mi történik, lásd: SSH-hozzáférés és a Terminal a DirectAdminban. Terminal nélkül nyissa meg a szkriptet a böngészőjében, vagy hívja meg a cronjobban a
curl --silent https://www.jouwdomein.nl/taak.phpparanccsal. - Ellenőrizze a jogosultságokat. A szkriptnek olvashatónak kell lennie: a fájlok jogosultsága 644, a mappáké 755 legyen. Lásd: Fájlok és mappák jogosultságai (chmod).
- Ellenőrizze az időpontot. Nézze meg a Cron Job will run: résznél, hogy a feladat akkor fut-e, amikor Ön gondolja. Ha a percnél csillag szerepel, a feladat minden percben lefut. Ez túl gyakori.
- Ellenőrizze, mennyi ideig tart a feladat. Ha egy feladat sokáig tart, vagy újraindul, mielőtt az előző befejeződött volna, akkor elakadhat, vagy a csomagja elérheti a korlátait. Ilyenkor ossza el a munkát több körre.
date >> /home/gebruiker/cron-log.txt; részt.Lásd még a DirectAdmin-útmutatóban: A csomag alapértelmezett e-mail-fiókja.
Részletes leírás képernyőképekkel: Cron Jobs: feladatok automatikus futtatása a DirectAdmin-útmutatóban.
Szeretne többet tanulni? Kövesse ingyenes WordPress-tanfolyamunkat, a következő leckét: 6.3 Képek, PHP és egyéb gyorsítási lehetőségek.
