Heey iedereen,

D.m.v. de zoekfunctie heb ik vele topics gelezen waar alleen maar werd gezeurt over nodig ja/nee dan er antwoord werd gegeven. Ik heb ook een vraag, en zie die graag beantwoord. Ik weet zeker dat ik op CronJobs wil draaien, heb toch 100GB p/m.

Ik draai hem via Putty.exe en via de wget optie. Deze voert wanneer ik een test.php erin gooi voor een email elke minuut het gewoon uit en ontvang ik de mail. Nu wil ik me _cron_hour script erop gaan draaien maar die pakt hij niet. Idd ook weeeeer een maffia game, maar ik ben niet echt van plan hem voor publiek online te zetten, alleen om wat te kunnen knutselen om weer meer van SQL & php te leren etc. Nu begin ik dus aan CronJob cursusje maar kom er niet uit. Moet ik in mijn _config.php nog een verwijzing maken naar deze CronJobs om ervoor te zorgen dat hij de gegevens uit _cron_hour.php ook echt in de database uitvoert?

Mvg,
Lars.
Zonder CronJobs werkte hij via de config aangestuurd prima. Wanneer ik dan inlogte moest ik 1 a 2x refreshen en dan deed hij het. Met CronJob moet ik de instellingen dus anders zetten zodat hij het wel doet. Ik kom er alleen echt niet uit hoe wel, daarom vraag ik hier hulp.
Eeehrm, als je dit script aanroept vanuit de cron, waarom zou hij dan voorbij dit moeten komen:

<?php
if($cron_pass != "secretcronpassword")
exit;
?>
$cron_pass wordt niet geset, en is dus altijd ongelijk aan die string.

Als je het volgende bovenaan je script zet:
<?php
ini_set("error_reporting", 1);
error_reporting(E_ALL);
?>
en het script dan via de shell (putty) runt via:

php scriptnaam.php

wat is dan de output? (ik ga er nu trouwens vanuit dat php in je path staat, probeer anders /usr/bin/php)

ps: de haakjes zijn niet verplicht achter exit, maar wel zo netjes :p
Je logt in met SSH en dan run je dat script op de prompt. Als dat werkt dan stel je pas de cron in.
<?php
$tijd=time();
mail("[email protected]","uitgevoerd","De cronjob is uitgevoerd op:".$tijd);
?>

Dit script voert hij volgens de cron gewoon uit, alleen mijn _cron_hour.php dus niet. Mijn cron zin is dit:
* * * * * /usr/bin/gwet -O /dev/null -q http://purmission.nl/thegame/_cron_hour.php

Het rare is dat als ik de pagina laat, dus www.purmission.nl/thegame/_cron_hour.php hij het wel uitvoert wanneer ik dan ctrl + F5 druk. (Ik moet wel echt die ctrl F5 erbij doen, gewoon naar de pagina gaan werkt niet.) Het lijkt er dus op dat mijn cronjob hem niet wil pakken, maar hoe kan dat? Waarom pakt hij die email script wel en me cron hour niet, staat er een foute zin in ofzo?

Script nu:
<?php /* ------------------------- */

if(!(mysql_pconnect("localhost","blaa","blaa") && mysql_select_db("blaa")))

if($cron_pass != "secretcronpassword")
exit;

mysql_query("UPDATE `[users]` SET `cash`=`cash`+50 WHERE `activated`=1");
mysql_query("UPDATE `[users]` SET `bank`=`bank`+10 WHERE `type`=3 AND `activated`=1");
mysql_query("UPDATE `[clans]` SET `cash`=`cash`+200,`bank`=`bank`+200");
mysql_query("DELETE FROM `[logs]` WHERE `area`='click'");
mysql_query("DELETE FROM `[logs]` WHERE `area`='attack'");
mysql_query("UPDATE `[users]` SET `ocsdoen`='2'");

mysql_query("UPDATE `[users]` SET `landvlieg`='0'");
mysql_query("UPDATE `[users]` SET `bankmax`='500000'");
mysql_query("UPDATE `[users]` SET `energie`='10' WHERE `energie`<'0'");
mysql_query("UPDATE `[users]` SET `bankleft`='20'");
mysql_query("UPDATE `[users]` SET `jointtijd`='0'");
mysql_query("UPDATE `[users]` SET `beroofkansen`='10'");
mysql_query("UPDATE `[users]` SET `maffiamode`='0'");
mysql_query("DELETE FROM `[linkex]` WHERE `siteid`='1'");

mysql_query("OPTIMIZE TABLE `[clans]`");
mysql_query("OPTIMIZE TABLE `[logs]`");
mysql_query("OPTIMIZE TABLE `[temp]`");
mysql_query("OPTIMIZE TABLE `[users]`");

mysql_query("UPDATE `[users]` SET `IPs`=''");
mysql_query("UPDATE `[clans]` SET `IPs`=''");

$dbres = mysql_query("SELECT * FROM `[clans]` WHERE `money_lvl1` > 0");
while($clan = mysql_fetch_object($dbres)) {
if($clan->type == 1)
mysql_query("UPDATE `[users]` SET `cash`=`cash`+". (50*$clan->money_lvl1) .",`bank`=`bank`+". (150*$clan->money_lvl1) ." WHERE `clan`='{$clan->name}'");
else if($clan->type == 2)
mysql_query("UPDATE `[users]` SET `cash`=`cash`+". (100*$clan->money_lvl1) .",`bank`=`bank`+". (100*$clan->money_lvl1) ." WHERE `clan`='{$clan->name}'");
else if($clan->type == 3)
mysql_query("UPDATE `[users]` SET `bank`=`bank`+". (rand(150,300)*$clan->money_lvl1) ." WHERE `clan`='{$clan->name}'");
}

/* ------------------------- */ ?>

Ik heb cronpass er toch ingelaten aangezien hij anders een 'Parse error: syntax error, unexpected $end' error geeft en met niet.;p
(Ik zou sowieso niet voor een cronjob kiezen. Sla in je database een datum op en controleer bij iedere keer dat de pagina herladen wordt of die datum een uur geleden is, zo ja: voer dat script uit. Veel makkelijker...)
Cron pass is verwijderd en ik heb de exit; regel neergezet onder de database connectie. Hij geeft dan aan: No such file or directory. Maar dit geeft hij ook aan bij mijn email script wanneer ik die op die manier intyp.

En das mis. wel makkelijker en beter voor je serverload etc, maar dan weet ik nog niets van crons.;p En ik wil ook nog database backups later er via laten lopen enz.

Is 't trouwens normaal dat dan iedereen 100x je cronhour script kan refreshen dat er dan geld bij komt?:p Dan kan iemand dat toch 300x doen?:p
Hahahaha.
Ik ken gwet niet, dus ik google.
En wat krijg ik als antwoord?

Bedoelde u: man wget

Ik denk dat dat je probleem ook oplost.

Edit:
Lars schreef op 07.01.2009 16:12
Is 't trouwens normaal dat dan iedereen 100x je cronhour script kan refreshen dat er dan geld bij komt?:p Dan kan iemand dat toch 300x doen?:p


Als iemand bij dat script kan dan kan dat inderdaad zo vaak men wil aangeroepen worden.
euhm, waarom gebruik je http://purmission.nl/thegame/_cron_hour.php? Gaat volgens mij niet werken. Je moet met het absolute pad werken, bijv. /var/www/thegame/_cron_hour.php. Nog beter is het om het bestand buiten de WWW root te zetten, bijv. /var/thegame_crons/_cron_hour.php.
Ik mag me wel heeeeel diep schamen.. Het ligt idd aan de tikfout.:p Wel heb ik weer veel geleert hiervan en van jullie reactie's! Waarom ik het absolute pad niet neem is omdat ik die niet kon achterhalen, alleen de wget optie werkte vanaf me mail script. In ieder geval bedankt want weet er nu weer een beetje meer vanaf!

Mvg,
Lars.

Reageren