cron fut, de mégsem...

mooray képe

Sziasztok!

A web-szerver.hu-n van a weblapom, amin a cron által futtatandó scripteket a szolgáltató weboldalán tudom beállítani.

Ide be is írtam hogy:

név: cron
könyvtár: web (ide került a drupal, és itt van a cron.php)
script: cron.php
futtatás gyakorisága: óránként
futtató környezet: PHP

A futási napló szerint a cron óránként lefuttatja az adott scriptet, minden fajta hibaüzenet nélkül, íme:

cron.php #1182
-----------------------------

Futás: 2009-01-25 11:15:30 - 2009-01-25 11:15:43
Eredmény:

De a Drupal állapotjelentése szerint:

Időzített feladatok Legutóbbi futás ideje: 1 hét 1 nap
A cron jelenleg nem fut. További információ található a kézikönyv időzített faladatok beállítása oldalán. Az időzítő böngészőből is futtatható.

Mi lehet a gond?

A válaszokat előre is köszönöm.

Drupal verzió: 
Fórum: 
Désiré képe

Nem lehet, hogy nem csak a fájlnevet kell megadni, hanem a teljes elérési útvonat?
pl: http://valami.hu/cron.php

0
0

- - -
Juhász Márton

http://juhaszmarton.hu

vjanos képe

A web-server.hu-nál webes felületről állítandó a cron. A /home/felh_nev/ könyvtárhoz képest kell a könyvtár nevet megadni. Teljes elérési útnál valami ilyen hibaüzenetet ír a logba:

start-stop-daemon: Unable to chdir() to /home/felh_nev/http://valami.hu/ (No such file or directory)

Ha http:// nélkül írom, akkor is ugyanez a helyzet, hiszen olyen könyvtár sincs.

Kétféle futtatási mód van: PHP és SHELL

Azt viszont én sem tudom, hogy mit is kell a cronnal futtani. Elvileg a telepítési könyvtárban lévő cron.php lenne az logikus.
A felhasználói kézikönyvben ez áll:

A Drupal modulok időzített feladatait a cron.php futtatja le, melynek neve a Unix/Linux rendszereken elérhető cron szolgáltatás nevére utal. Amennyiben kiszolgálónkon elérhető ez a szolgálatatás, akkor érdemes ennek segítségével beállítani, hogy adott időközönként lefusson a cron.php. Attól függően, hogy milyen szolgáltatónál helyeztük el webhelyünket, különböző módja lehet az időzített feladatok beállításának. Lehetséges, hogy emailben kell felkeresnünk a rendszergazdát, előfordulhat, hogy webes felületen tudjuk menedzselni az időzítéseket (ilyen még akár ingyenes szerveren is előfordulhat).

Ha a saját szerverünket üzemeltetjük, akkor segítségünkre lehet az alapcsomag scripts könyvtárában található cron-lynx.sh nevű állomány, ami a javasolt meghívási módot mutatja.

#!/bin/sh
# $Id: cron-lynx.sh,v 1.3 2006/08/22 07:38:24 dries Exp $

/usr/bin/lynx -source http://example.com/cron.php > /dev/null 2>&1

Ebben a webcímet a webhelyünk nyilvánosan is elérhető címére kell átírni, hiszen ha nem egy nyilvános címet adunk meg, bizonyos feladatok nem fognak helyesen lefutni. Ennek az állománynak a módosítása azonban nem elegendő. Tudatnunk kell az operációs rendszerrel, hogy szeretnénk adott időközönként lefuttatni ezt a parancsot. A crontab paranccsal vegyük fel a következő bejegyzést az időzítési listánkba – értelemszerűen testre szabva a cron-lynx.sh elérési útját:
00 * * * * /home/www/drupal/scripts/cron-lynx.sh

Ezzel a bejegyzéssel a Drupal időzített feladatai óránként futnak majd le, de ettől eltérő beállítás is megoldható – bizonyos webhelyek sokkal gyakoribb futtatást igényelhetnek a feladatok függvényében.

Ezek szerint valahogyan mégis közölni kellene a cron-al a webhely címét. De a WEB-SERVER.HU cron beállítása erre nem nagyon alkalmas a jelek szerint.
Van valakinek ötlete?

UPDATE

Végül sikerült kitalálni.
A script könyvtálban van egy cron-lynx.sh. Ebből egy másolat kell mondjuk cron-lynx-valami.sh néven. Ebben az eredeti exapmle.com-ot a webhely címére kell cserélni.

#!/bin/sh
# $Id: cron-lynx.sh,v 1.3 2006/08/22 07:38:24 dries Exp $

/usr/bin/lynx -source http://valami.hu/cron.php > /dev/null 2>&1

A webes felületen ezt a cron-lynx-valami.sh-t kell megadni SHELL futtatási módban, persze a megfelelő webhely/scripts könyvtárral.
Hiba nélkül fut, és látszik is a frissítés a Drupál alól.
0
0
sgabe képe

és így nem is fog... cron jobra nem a cron.php fájlt kell beállítani hanem a /scripts mappádban található valamelyik .sh (shell script) fájlt, amiben értelem szerűen módosítod az oldaladra vonatkozó részt.

0
0
nevergone képe

Én pl. localhoston így használom
/usr/bin/wget -O - -q http://localhost/oldalam_helye/cron.php

Viszont nem elég a "cron.php", teljes elérési út kell, mint a fenti sorban is.

0
0
Boobaa képe

Ezt hívják böngészőből való futtatásnak, ahol ugye a webszerver szerinti php.ini beállítások, mint például az időkorlát érvényesek.
Ha parancssorból/crontabból parancsként hívod, akkor meg ugye a parancssori php.ini beállítások érvényesek, pl. az ottani (általában nagyobb, vagy éppen végtelen) időkorláttal.

0
0
mooray képe

Köszönöm mindenkinek a segítséget.
Bár elolvastam a drupal.org ide vonatkozó fejezetét, abból nem tudtam kihámozni mit is kéne csinálni, mert ugye nem férek hozzá közvetlenül a cron-hoz.

A cron a legutolsó állapotjelentés szerint 3 perce futott, tehát működik. : )

0
0