PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Confixx Crontab



FlexMax
17.07.2008, 01:47
Hallo,

Ich hab mir für die wichtigen Cron nun Crontabs bei meinem Hoster genommen nur irgendwie wollen die nicht so richtig laufen.

Eingetragen hab ich sie so mal anfangs.

0 1 * * * /var/www/web109/html/crons/refzahlungen.knt.php

Zuerst kam Permision Denied, dann hab schreibreichte gegeben, dann kam

/var/www/web109/html/crons/refzahlungen.knt.php: line 1: ?: No such file or directory
/var/www/web109/html/crons/refzahlungen.knt.php: line 3: //: is a directory
/var/www/web109/html/crons/refzahlungen.knt.php: line 4: syntax error near unexpected token `('
/var/www/web109/html/crons/refzahlungen.knt.php: line 4: `$refdaten = mysql_fetch_array(db_query("SELECT `re1`,`re2`,`re3` FROM ".$db_prefix."_seitenkonfig"));'


dann hab ich so probiert...

0 1 * * * /var/www/web109/html/cron.php?id=6&pw=Passwort

da kam aber nichtsmal eine mail mit infos und ausgeführt würde der befehl auch nicht.


Jetzt bin ich irgendwie am verzweifeln.
Hoffe ihr könnt mir weiterhelfen.

Liebe Grüsse
Markus

jpwfour
17.07.2008, 11:56
der direkte aufruf funktioniert nicht, da in "neuen" versionen des vms die crons generell über die cron.php mit zugehörigem passwort (GET variable) aufgerufen werden sollten und meist auch müssen.

nur mit GEt anhängseln kommt das ganze system meist nicht so gut klar, dazu gibts verschiedene methoden:


/usr/bin/php5 -q -c /etc/php5/apache2 /var/www/web123/datei.php?foo=bar
/usr/bin/php5 /var/www/web123/datei.php?foo=baroder auch:

/pfad/zu/php /prad/zu/datei.php param1 param2 param3oder auch:

wget http://deineurl.de/datei.php?foo=bar (http://www.borg-nexus.com/test_echo.php)am ende ein:
> /dev/nullsollte verhindern, dass ne email verschickt wird?

dann evtl der datei noch die benötigten rechte geben, an sich sollte chmod 750 ausreichen

hm, auf jeden fall gibt es immer ganz verschiedenen möglichkeiten, weiß nicht, wie das in confixx genau läuft, welche version verwendet dein hoster da?

alternativ einfach mal an den support vom hoster wenden, oder in die FAQ sofern vorhanden schauen.

FlexMax
17.07.2008, 12:07
Version 3 Professional.
Ist der selbe Server wo auch Designerscripte liegt.

Ich teste die sachen mal durch :)

Test 1 mit wget:

--12:12:01-- http://www.domain.de/crons/lotto.knt.php?foo=bar
=> `lotto.knt.php?foo=bar'
Resolving www.domain.de... 87.xxx.xxx.25
Connecting to www.domain.de|87.xxx.xxx.25|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4,349 (4.2K) [text/html]
lotto.knt.php?foo=bar: Permission denied

Cannot write to `lotto.knt.php?foo=bar' (Permission denied).

obwohl ich schon 777 gegeben hab :D


Test2 mit: /usr/bin/php5 /var/www/web123/datei.php?foo=bar

Could not open input file: /var/www/web109/html/crons/lotto.knt.php?foo=bar


Test3 mit: /usr/bin/php5 -q -c /etc/php5/apache2 /var/www/web123/datei.php?foo=bar

Could not open input file: /var/www/web109/html/crons/lotto.knt.php?foo=bar



Kann das sein das die datei irgendwie geschützt ist?

FlexMax
17.07.2008, 13:22
Puhh, ich glaub ich habs jetzt, aber das mit dem wget war ein guter Ansatz.
Sogar Passwortgeschützt ^^

Also der Befehl lautet:

wget http://www.deinedomain.de/crons/datei.php?login=deinpw


In der Datei müsst ihr folgendes dazugeben fals es da nicht so ist.
<?
if ($_GET['login'] != "deinpw") {
exit;
}
ignore_user_abort(true); //damit es nicht abgebrochen wird
@require_once ('../lib/functions.lib.php');
db_connect();


Am schluss dann wieder schliessen.
db_close();
?>

CHMOD hat 644 gereicht.

Ich weiss dbconnect in einem cron ist ungewöhnlichim 1.2er, aber da greift er ja nicht über die cron.php zu :D


Vielleicht kann das wer beizeiten auch nochmals testen und bestätigen.
Wäre sicher für mehrere Interesannt.


Liebe Grüsse
Markus

Muecke
17.07.2008, 13:46
wget -q "http://domain.de/crons/cronname.php?pass=PW"

jpwfour
17.07.2008, 13:48
aber gehst du so nicht mit der kirche ums dorf?

warum nicht:
wget http://www.deinedomain.de/cron.php?pw=deinpw&id=X (http://www.deinedomain.de/crons/datei.php?login=deinpw)

oder funzt das nicht, wenn man noch per &... was dran hängt?

so wäre es besser,d a man
a.) nicht alle crons umschreiben muss &
b.) so der cronaufruf auch in der datenbank verzeichnet wird
(update vms_crons set laufzeit ...)

FlexMax
17.07.2008, 13:55
Genau ^^
das & funkt nicht. da nimmt er das nachstehende nicht mehr.

daher hab ich mir gedacht, dann bau ich die funktion halt direkt ins cron ein.
Ist zumindest halt "eine" Lösung einmal.


Ja stimmt. Der Cronlauf wird nicht verifiziert in der DB. Das könnte man auch im Cron noch "zubaun"



wget -q "http://domain.de/crons/cronname.php?pass=PW"

Wieso das -q? --- Ahhh, wegen Mail, oder?

jpwfour
17.07.2008, 15:13
...
Wieso das -q? --- Ahhh, wegen Mail, oder?


‘-q’
‘--quiet’
Turn off Wget's output.http://www.gnu.org/software/wget/manual/html_node/Logging-and-Input-File-Options.html#Logging-and-Input-File-Options

an sich nicht wegen der mail?

btw:
teste mal das:


wget "http://www.deinedomain.de/cron.php?pw=deinpw&id=X"

so sollte es afaik funktionieren (das -q kannst du ja auch noch einfügen)
kommt dann noch ne mail odernicht?

ansonsten noch mit:

> /dev/null
oder auch:

>& /dev/null

am ende versuchen

FlexMax
17.07.2008, 15:19
bei -q kommt keine mail mehr.

Das andere test ich eben mal.