Sorry, weer een CronJob vraag. ;p

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Lars

Lars

06/01/2009 22:53:00
Quote Anchor link
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.
 
PHP hulp

PHP hulp

17/05/2024 00:14:29
 
Arjan Kapteijn

Arjan Kapteijn

06/01/2009 23:08:00
Quote Anchor link
Ik vind het een enorm onsamenhangend verhaal... ik kan er in ieder geval weinig van breien... Hoe dan ook, je weet dat je PHP gewoon vanuit bash kunt aanroepen met iets als "php -f [bestand]"

http://nl2.php.net/features.commandline
 
- Ariën  -
Beheerder

- Ariën -

06/01/2009 23:09:00
Quote Anchor link
>> Ik weet zeker dat ik op CronJobs wil draaien, heb toch 100GB p/m

Leuk en aardig, maar het gaat erom of het wel nodig is, het kost allemaal serverload, en als je steeds een zware controle doet op iets wat toch 'weinig' teruggeeft...

maar als je het echt zo graag wilt. Test het script eerst een publiekelijk uitwat je wilt draaien, misschien dat die ermee stopt vanwege een error.
De cronjobs werken prima, dat kan je snel concluderen als een simpel mailscript gewoon al werkt.
 
Lars

Lars

06/01/2009 23:11:00
Quote Anchor link
Het mailscript doet keurig zijn werk in CronJobs. _cron_hour.php normaal gesproken ook en werkt dan bij na 2x refreshen na aanmelding. Alleen in CronJob wil hij niet werken, vandaar mijn vraag of ik die niet via de config in werking moet zetten zoals dat ook moet bij gewone crons.
 
- SanThe -

- SanThe -

06/01/2009 23:54:00
Quote Anchor link
Wat heb je reeds gedaan om het werkend te krijgen?
Cronjob instellen is namelijk niet zo moeilijk.
 
Lars

Lars

07/01/2009 09:10:00
Quote Anchor link
Ik ben via Putty.exe in de SSH binnengekomen en heb daar regels neergezet. Volgensmij moeten die regels wel kloppen, want test.php met de email deed het en die heb ik gewoon veranderd in _cron_hour.php.

Voorderest heb ik nog maar even niets gedaan in de cron scripts en config om te kijken of dat wat uitmaakte, maar helaas doet ie nog steeds niets. De orginele crons staan dus weer op de site zoals ze normaal pas worden geactiveerd wanneer ik inlog.
 
- SanThe -

- SanThe -

07/01/2009 10:09:00
Quote Anchor link
En hoe run je _cron_hour.php dan? En wat gebeurt er als je dat doet?
 
Lars

Lars

07/01/2009 10:40:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php /* ------------------------- */

  if(!(@mysql_pconnect("localhost","dit","klopt") && @mysql_select_db("gewoon"))) {
    print <<<ENDHTML

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

  mysql_query("UPDATE `[users]` SET `cash`=`cash`+40 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}'");
  }


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


Dit is mijn cron hour. Als het goed is hoort die dus via putty.exe ingesteld elke minuut uitgevoert te worden op de wget manier. Alleen doet hij dat niet, of maakt geen goede verbinding met de database?
 
Dennis Mertens

Dennis Mertens

07/01/2009 10:47:00
Quote Anchor link
Leuke kleurtjes.

print <<<ENDHTML staat daar totaal fout.[/b]

Ook moet je geen @ gebruiken voor een functie.
 
Lars

Lars

07/01/2009 10:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php /* ------------------------- */

  if(!(mysql_pconnect("localhost","bla","blaa") && mysql_select_db("blaaa"))) {

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

  mysql_query("UPDATE `[users]` SET `cash`=`cash`+40 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}'");
  }


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


Dan zou hij zo moeten kloppen? Hij voert 'm nog steeds niet uit en ik probeer echt van alles.;p
 
- SanThe -

- SanThe -

07/01/2009 11:01:00
Quote Anchor link
Zorg eerst dat het script fatsoenlijk werkt. De cron komt dan later wel.
 
Lars

Lars

07/01/2009 11:03:00
Quote Anchor link
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.
 
Rens nvt

Rens nvt

07/01/2009 11:08:00
Quote Anchor link
Eeehrm, als je dit script aanroept vanuit de cron, waarom zou hij dan voorbij dit moeten komen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set("error_reporting", 1);
error_reporting(E_ALL);
?>

en het script dan via de shell (putty) runt via:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 01/01/1970 01:00:00 door Rens nvt
 
- SanThe -

- SanThe -

07/01/2009 11:12:00
Quote Anchor link
Je logt in met SSH en dan run je dat script op de prompt. Als dat werkt dan stel je pas de cron in.
 
Lars

Lars

07/01/2009 15:59:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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
 
- SanThe -

- SanThe -

07/01/2009 16:05:00
Quote Anchor link
Ga naar de server met SSH.
Typ dit in op de console: /usr/bin/gwet -O /dev/null -q http://purmission.nl/thegame/_cron_hour.php

Wat gebeurt er dan?


Edit: En waar moet dit vandaan komen?
$cron_pass
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Jesper Diovo

Jesper Diovo

07/01/2009 16:08:00
Quote Anchor link
(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...)
 
Lars

Lars

07/01/2009 16:12:00
Quote Anchor link
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
Gewijzigd op 01/01/1970 01:00:00 door Lars
 
- SanThe -

- SanThe -

07/01/2009 16:19:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Tristan nvt

Tristan nvt

07/01/2009 16:32:00
Quote Anchor link
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.
 
Lars

Lars

07/01/2009 16:50:00
Quote Anchor link
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.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.