PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Crons



Dyman
06.05.2009, 16:58
Nun habe ich ja die möglichkeit verschiedene programme über crons laufen zu lassen, nur wenn ich die crons automtieren will bekomme ich als meldung, Keine crons mehr vorhanden.Könnt ihr mir da weiterhelfen?

bulli
06.05.2009, 17:00
Welchen Cronanbietr hast du, oder machst du das über dein Webspace/Server?

Dyman
06.05.2009, 17:03
mh ja ich wollte es über meinen Anbieter machen, aber genau da habe ich meine probleme, gibt es denn anbieter?

eRaaaa
06.05.2009, 17:04
jo, anshceinend hast du in deinem web-paket kein cronjob-feature freigeschaltet.

alternativen:

free anbieter dafür sind z.b.:
http://cronjob.de/

Dyman
06.05.2009, 17:08
mh ok welches verzeichniss oder welche dateinen muss ich da eingeben, ich denke mal die aus dem verzeichnis /html/crons/stg_ads-im-netz.forcedbanner.php zum beispiel, wenn das so ist kann die vomm anbieter so gestartet werden ohne irgendwelche zugangsdaten

Lokutos
06.05.2009, 17:32
Bei cronjob musst du die url angeben die im adminforce verlinkt ist mit dem grünen button

wenn du es intern machst gehen vermutlich die ?passwort=xxxxxxx nicht
da dies crontab nicht unterstützt.

Dyman
06.05.2009, 17:49
jo danke dir hab mich da mal registriert, und eigestellt mal sehen ob es klappt

JoJo
07.05.2009, 17:07
wenn du es intern machst gehen vermutlich die ?passwort=xxxxxxx nicht da dies crontab nicht unterstützt.

Alternative?! ;) sitze nämlich grade anm gleichen Problem ... der erkennt das nicht :D

Würde die Crons nicht "ungeschützt" lassen wollen ...

Danke schonmal und beste Grüße
Jo

Lokutos
07.05.2009, 17:13
variante :

Aufruf
php /var/www,...../test.php 4


Auslese
$argv[0] == 4

JoJo
07.05.2009, 17:26
Ist die Variable dann automatisch $argv[0]?

Habe jetzt einfach oben in der Cron-Datei folgende Zeile:


if ($argv[0] != 4) die ("Kein Zugriff");

Der Cron wird ausgeführt ... Aufruf:

php /var/www/webXXX/html/crons/cron_datei.php 4 >> /var/log/db_cron.txt

Das Schreiben in die txt-Datei mache ich nur bis es läuft ;-) vielleicht aber auch länger, kann ja eigentlich nicht schaden ...

Danke schonmal für den Tipp!

Beste Grüße
Jo

edit: Achja er schreibt "Kein Zugriff" in die Log-Datei ;)

Lokutos
07.05.2009, 17:34
die fariablen sind so angelegt, das du hinter
_datei.php 4
anhängen kannst was du willst


sprich


php /var/www/webXXX/html/crons/cron_datei.php 4 6 5 2 1 4


überprüfungen sind dan:



$argv[0] == 4
$argv[1] == 6
$argv[2] == 5
$argv[3] == 2
$argv[4] == 1
$argv[5] == 4


Alternative dazu sind auch die Rechte für den cronordner auf 700 Setztbar so kann die datei nur via FTP und Server Aufgerufen und bearbeitet werden.

JoJo
07.05.2009, 18:31
Hmmm .... komisch ...


if ($argv[0] == 7) {

beantwortet er mir immer mit "Nein" ... also ich komme immer in den else Bereich ...

Ist dafür ne bestimmte Version von irgendwas (PHP, o.ä.) nötig? Ich meine ich hab PHP5 aber vielleicht gehts nur mit 4? :D Keine Ahnung ...

Jedenfalls habe ich oberen Code als erster in der CronJob-PHP-Datei stehen (natürlich nach <?) ...

Seltsam ...

Beste Grüße
Jo

Lokutos
07.05.2009, 18:35
Hmmm... Komisch....

Poste doch mal wie du die dateie aufrufst dan kann dir auch geholfen werden

JoJo
07.05.2009, 18:41
Macht Sinn :D

das gibt "crontab -l" aus ... Ich habe die webnummer ausgetauscht in X und die 7 ist eigentlich auch keine 7 :D ist halt auch geändert ... aber im Script steht die richtige Zahl (also im If) ... habe die nur hier fürs Forum geändert ...

Sowohl so:
*/1 * * * * php /var/www/webX/html/crons/db_optimierer.php 7 >> /var/log/db_cron.txt

als auch so:
*/1 * * * * php /var/www/webX/html/crons/db_optimierer.php >> /var/log/db_cron.txt 7

Schreibt der mir Kein Zugriff (ausm die() in der else-schleife) in die txt-Datei ... vielleicht liegts daran, dass ich die Ausgabe in eine txt weiterleite?

Danke nochmal und beste Grüße
Jo

jpwfour
07.05.2009, 19:01
warum nicht einfach bspw. wget nutzen, und den Cron wieder ganz "normal" mit all seinen schönen GET Parametern aufrufen?

wget -q "http://.de/cron.php?id=xyz&pw=ppppppp"

JoJo
07.05.2009, 19:06
Wollte nach nem Beispiel fragen was du wohl nachträglich eingefügt hast :D ich probiers mal aus!

Danke!

Beste Grüße
Jo

JoJo
07.05.2009, 19:21
Läuft ;) ... Super Sache ...

Derzeit rufe ich den Cron so auf ... Die Ausgabe - Cron gelaufen - wird aber nicht in die Datei geschrieben ;)

Wenn du da auch noch nen Tipp hast, bist du der Größte :D

*/2 * * * * wget -q "http://www.klammbanking.eu/cron.php?id=XXXXX&pw=XXXXXXXXX" >> /var/log/db_cron.txt

Beste Grüße
Jo

eRaaaa
07.05.2009, 19:43
hmm...sicher gehts auch mit buffer und in datei umleiten oder so, aber
1.) wieso willste das in die datei schreiben?
2.) benutz doch einfach statt printf, fprintf



if (!($fp = fopen('db_cron.txt', 'w'))) {
return;
}
fprintf($fp, "Cron gelaufen!");

JoJo
07.05.2009, 19:55
Jo, das Logging macht keinen Sinn ... haste Recht ;) wollte es erstmal machen um zu prüfen ob alles läuft ;)

Läuft aber! Und das is ja die Hauptsache!

Jeder darf mal :D

Danke nochmal an alle für die Hilfe und der Thread kam mir auch sehr gelegen!!

Beste Grüße
Jo

jpwfour
07.05.2009, 20:25
Liegt an dem "-q", dass bedeutet "quiet", also "sei ruhig du wget" :biggrin1:

ohne dass würde dein code wohl funktionieren mit in datei schreiben, aber hab ich selber noch nicht getestet...

JoJo
07.05.2009, 20:36
Achso ... dachte sonst würde die nicht "ausgeführt" werden ... weil nen wget ganz ohne paramter lädt die Datei einfach runter ...

Also wenn ich den normal als Befehl eingebe, denke als Cron verhält es sich dann genauso ...

Was sort denn dann dafür? Dass die Datei ausgeführt und nicht gespeichert wird?

Beste Grüße
Jo