Kategória:
modulismertető
Visszatérő probléma a cron.php védelme a mezei userek elől. Nagyon sok lényege nincs, igazából bárki nyomkodhatja a cron.php-t, akkor lesz csak gáz, ha valaki elkezdi hajtani, akkor már érdemes szétnézni, kinek van baja velünk. Amíg a Drupal 7-ben ez alapfunkció, Drupal 6-ban még kell hozzá kis segítség.
A Supercron erre is gyógyírt nyújt, legalább is a dev verziója.
- Nézzük, mit tud még, leginkább a modul adatlapja alapján:
- Megmutatja, milyen hook-ok akadnak a cronra. Ez tök jó, ha debugol az ember, hiszen ha pl a cron.php kifut az időből, akkor ki lehet deríteni, hogy mi miatt.
- A a hookok sorrendjét lehet cserélgetni, amik a cront használják.
- Akár ki is kapcsolhatjuk a nekünk nem tetsző hookokat
- Párhuzamosan is futhatnak a cront használó hookok, így ha a szolgáltatónál alacsony a php max futási idő, akár gyógyulhat is a cron ezáltal.
- A hibakeresés csúcsa: Önállóan is futtathatjuk a cront használó hookokat.
- Ha elakad egy hook, attól még a többi lefut, így csak az az egy funkció sérül, amivel gond van.
- Megmutatja, hogy mennyi ideig tartott a cron futása.
- Megnézhetjük, milyen végeredményt produkáltak futás után az egyes hookok
- Torlódáscsökkentésbe bevonható, vagyis ha nagy a forgalom, optimalizálja a cron processek futását.
- És ami a védelmet illeti: Meg lehet adni, hogy melyik ip címről legyen futtatható a cron.
Én eddig kb 3-4-szer használtam, egyszer azt sikerült kideríteni vele, hogy az egyik átirányítás kiakasztja a search modul indexelését. Másik alkalommal a twitter modul debugolására használtam, a többire meg nem emlékszem. :)
Az install nem teljesen a szokványos, annyit kell még csinálni, hogy a modul könyvtárában lévő supercron.php-t a Drupal gyökérkönyvtárába kell másolni. A 6.x-2.x-dev verzióban már ez sem kötelező, tehát akár védett könyvtárba is pakolhatjuk, mondjuk a sites/all/modules-be. Sejtésem szerint az eredeti cron.php ez esetben törölhető, viszont ezt ugye minden core frissítés után meg kell tenni.
Ha nem akarunk macskagyilkosok lenni, .htaccessben letilthatjuk az eredeti cron.php elérését.